如何修复Java中的if/else语句

如何修复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 =

我对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时,它都会说“好选择!”

我不知道我做错了什么。 请帮助。

问题在这里:

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);