我是java语言的新手,并试图运行一个简单的基于文本的程序,一旦你按1或0,它将继续故事或停止它。我无法弄清楚的是,如果我在下面运行这部分代码并选择了错误的答案,它会绕过我的if语句。
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都说“好选择!”
我不知道我做错了什么。 请帮忙。
答案 0 :(得分:6)
问题在于:
chase.nextLine();
您应该在answer1
中读取一个数字,而不是仅仅阅读一条线并扔掉它:
answer1 = chase.nextInt();
这也将使你不再需要answer1 = 1;
行。由于您只是忽略了您所读取的数据行,这意味着您从未更改answer1
的值,因此无论您键入的是什么,它始终都是1
。
答案 1 :(得分:2)
看起来你似乎没有将输入分配给answer1,因为它的初始值为1,所以它总是为真。
答案 2 :(得分:2)
你用这一行设置answer1的值等于1:
answer1 = 1;
并且永远不会根据您问题的输入进行更改。因此,answer
始终等于1,并且始终达到else
。
答案 3 :(得分:2)
你正在以错误的方式使用'chase'变量,在这种情况下,'answer1'初始化不是必需的。
试试这个。
answer1 = chase.nextInt();
然后继续使用if else语句,就像在代码中一样。