在Java中,如果前一个查询';s值是真的吗?

在Java中,如果前一个查询';s值是真的吗?,java,if-statement,Java,If Statement,例如,我问一个人是否想要冰淇淋。如果他们说是,(或输入1),我想让它问下一个问题,“你喜欢哪种口味?”,但如果他们说不,我想让它跳过下一个问题,然后继续问下一个被取消的问题,比如“你喜欢吐司吗?” 我尝试使用if语句,但没有那么幸运 我基本上是这样写的: if (answer == 1) { System.out.print("Which flavour would you like?"); flavour = keyboard.nextLine; } else {} 但是编译

例如,我问一个人是否想要冰淇淋。如果他们说是,(或输入1),我想让它问下一个问题,“你喜欢哪种口味?”,但如果他们说不,我想让它跳过下一个问题,然后继续问下一个被取消的问题,比如“你喜欢吐司吗?”

我尝试使用if语句,但没有那么幸运

我基本上是这样写的:

if (answer == 1) {
    System.out.print("Which flavour would you like?");
    flavour = keyboard.nextLine;
}
else {}
但是编译器很恼火,因为我在代码中使用了更深层次的值,而且似乎是因为它在if语句中,程序很难访问它。(因为在下面的代码中,我会根据用户选择的冰淇淋口味提问


非常感谢。

问题是,如果
答案
不是
1
,则
味道
没有设置为任何值。您希望它做什么


要解决此问题,您需要在
if
之前或在
else
块中对值进行赋值。您可能需要稍后检查此值是否合理。

问题是,如果
答案
不是
1
,则
没有设置为任何值。您希望它做什么


要解决此问题,您需要在
if
之前或在
else
块中对值进行赋值。您可能需要稍后检查此值是否合理。

好的,您需要声明
flavor
有一个值,例如null:

String flavour = null;
if (answer == 1) {
    ...
}
否则,如果您尝试从
flavor
读取,编译器无法确定您是否已为其指定了值


然而,理想情况下,你应该尝试设计你的代码,这样你就可以清楚地知道,除非给它一个有用的值,否则你不会使用这个变量。你说你以后在你的代码中使用这个变量-你是否确保只有当你真的问到这个问题时才使用它?你能在问完之后立即使用这个值吗虽然给出一个像null这样的“伪”值会使编译器停止运行,但是如果你能构造你的代码,使你一开始就不需要伪值,那就更好了。

好吧,你需要声明
flavor
有一个值,例如null:

String flavour = null;
if (answer == 1) {
    ...
}
否则,如果您尝试从
flavor
读取,编译器无法确定您是否已为其指定了值


然而,理想情况下,你应该尝试设计你的代码,这样你就可以清楚地知道,除非给它一个有用的值,否则你不会使用这个变量。你说你以后在你的代码中使用这个变量-你是否确保只有当你真的问到这个问题时才使用它?你能在问完之后立即使用这个值吗他给了一个“哑巴”像null这样的值将阻止编译器运行,如果你能构造你的代码,这样你就不需要伪值,那就更好了。

如果你在if语句之外声明并初始化flavor,你就可以了。

如果你在if语句之外声明并初始化flavor,你就可以了