0

さて、これは完全なコードの一部であると思われますが、要点は、ユーザーが推測ナンバーゲームの答えを推測し、ユーザーがそれを正しく理解した瞬間です。

if (guess==num){
    System.out.println("You Win!");
    System.out.println("Play Again?? Y/N");

    String play=scan.nextLine();

    if(play.equalsIgnoreCase("y")){
        Game();
    }

    if(play.equalsIgnoreCase("n")){
        System.exit(1);
    } else {
        invalid(); //when playing again, it says you entered an invalid choice which i do not want.

        play=scan.nextLine();

        if(play.equalsIgnoreCase("y")){
            Game();
        }
    }
}

出力は次のとおりです。

............................................。

14

あなたが勝ちます!

再びプレー??Y / N

無効な選択肢を入力しました。Y/Nを再入力してください<<=====問題はここにあります.........................。 ......................................。

もう一度プレイに応じてユーザーからの入力が欲しいのですか?質問ですが、コードのどの部分が無効な選択肢を入力したのかわかりません。誰か助けてもらえますか?私は悲しいことに問題を見ることができません。y / nの質問に無効な回答を入力したときにユーザーに通知したいので、まだ無効なメソッドが必要です。

4

2 に答える 2

5

はいを選択した後でも、コードは無効なセクションに入ることができます。else ifステートメントを使用する必要があります

if(play.equalsIgnoreCase("y")){
        Game();
}

else if(play.equalsIgnoreCase("n")){
    System.exit(1);
}

else{
   //...
}

デバッグ機能付きのプログラミング環境を使用していますか? 元のコードでは、行にブレークポイントを設定し、System.out.println("You Win!");コードがたどる経路を行ごとに監視することをお勧めします。これは、何が起こっているのかを自分で理解するのに役立ちます。

System.outデバッグを行わなくても、ステートメントを追加して、プログラムの流れをよりよく理解できます。

String play=scan.nextLine();
System.out.println("My inputted value was " + play);

    if(play.equalsIgnoreCase("y")){
        System.out.println("Beginning new game...");
        Game();
    }

    if(play.equalsIgnoreCase("n")){
            System.out.println("Exiting game...");
            System.exit(1);
        }

    else{
于 2012-04-23T15:46:02.430 に答える
3
    if(play.equalsIgnoreCase("y")){
        Game();
    }

ユーザーが Y を押しても、次の if/else に進みます

    if(play.equalsIgnoreCase("n")){
            System.exit(1);
    } else {

        invalid(); //when playing again, it says you entered an invalid choice which i do not want.

            play=scan.nextLine();

            if(play.equalsIgnoreCase("y")){
                Game();
            }
        }

    }

play は Y なので、

invalid();
于 2012-04-23T15:46:41.803 に答える