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

时间:2013-06-30 02:26:06

标签: 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 = 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都说“好选择!”

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

4 个答案:

答案 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语句,就像在代码中一样。