如何修复Java中的if/else语句
我对java语言非常陌生,尝试运行一个简单的基于文本的程序,一旦你按下1或0,它就会继续或停止这个故事。我不明白的是,如果我运行下面这部分代码,并且选择了错误的答案,那么它就会绕过if语句如何修复Java中的if/else语句,java,Java,我对java语言非常陌生,尝试运行一个简单的基于文本的程序,一旦你按下1或0,它就会继续或停止这个故事。我不明白的是,如果我运行下面这部分代码,并且选择了错误的答案,那么它就会绕过if语句 package game; import java.util.Scanner; class chase { public static void main (String args[]){ int answer1; answer1 = 1; Scanner chase =
package game;
import java.util.Scanner;
class chase {
public static void main (String args[]){
int answer1;
answer1 = 1;
Scanner chase = new Scanner(System.in);
System.out.println("You hear a noise form a house you walk by. What do you do?");
System.out.println("Press 1 to enter the house. Press 0 to run away like a panzy");
chase.nextLine();
if (answer1 == 1){
System.out.println("Good Choice!");
}else{
System.out.println("You ran away and was crushed by a falling pig");
System.out.println("Try again!");
}
}
}
我试着做的是,一旦你按下1,它会说“好的选择!”一旦你按下0,它会运行else语句。但每次我按0时,它都会说“好选择!”
我不知道我做错了什么。
请帮助。问题在这里:
chase.nextLine();
你应该把一个数字读入answer1
,而不是仅仅读一行然后扔掉:
answer1 = chase.nextInt();
这也使得你不需要回答
answer1=1代码>行了。由于您只是忽略了您读取的数据行,这意味着您从未更改过answer1
的值,因此无论您键入什么,它始终是1
。看起来您从未将输入分配给answer1,因为它的初始值为1,所以它将始终为真。您正在使用此行将answer1的值设置为1:
answer1 = 1;
永远不要根据你问题的输入来改变它。因此,answer
始终等于1,并且您的else
将永远到达。您使用的“chase”变量错误,在这种情况下,不需要进行“answer1”初始化
试试这个
answer1 = chase.nextInt();
然后继续执行if-else语句,就像在代码中一样。nextLine()实际上做什么?我没有看到实现。据我所知,答案1没有任何变化,那么为什么会发生变化呢。。我把它改成了answer1=chase.nextInt();但它希望我创建一个方法。@CHASE write answer1=CHASE.nextInt();扫描器追逐后=新扫描器(System.in);