-1

私は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 を押すと「Good Choice!」と表示されることでした。0 を押すと、else ステートメントが実行されます。しかし、0 を押すたびに「Good Choice!」と表示されます。

何を間違えたのかわからない。助けてください。

4

4 に答える 4

6

問題はここにあります:

chase.nextLine();

answer1行を読み取って捨てるのではなく、数値を読み取る必要があります。

answer1 = chase.nextInt();

answer1 = 1;これにより、ラインが不要になります。読み込んだデータの行を無視しているだけなので、 の値を変更したことanswer1はあり1ません。

于 2013-06-30T02:28:27.407 に答える
2

入力を answer1 に割り当てているようには見えません。初期値が 1 であるため、常に true になります。

于 2013-06-30T02:28:41.053 に答える