1

私は助けが必要です。ユーザーに再試行するかどうか尋ねたいのですが、コードが機能していないため、コードに問題があるようです。

public class TotoAzul
{
   public static void main(String[] args)
   {

      Scanner keyboard = new Scanner(System.in);

      int n1, n2, sum;
      String answer;
      do {

      System.out.println("Enter number 1: ");
      n1 = keyboard.nextInt();

      System.out.println("Enter number 2: ");
      n2 = keyboard.nextInt();

      sum = n1 + n2;

      System.out.println("Number 1\t" + "Number 2\t" + "Sum");
      System.out.println("__________________________________");
      System.out.println(n1 + "\t\t" + n2 + "\t\t" + sum);

      System.out.println("Enter yes to continue or any other key to end");
      answer = keyboard.nextLine();

      keyboard.nextLine();

      }
      while(answer.equalsIgnoreCase("YES"));



}

   }

実行すると、ユーザーの回答が保存されますが、プログラムは繰り返されません。どうすればこれを修正できますか?

4

3 に答える 3

2

keyboard.nextLine();afterを移動して、 への呼び出しによって残された入力ストリーム内のぶら下がっている改行文字n2 = keyboard.nextInt();を受け入れて無視します。nextInt()

実行すると、ユーザーの回答answerが保存されます-フィールド に保存されているものを印刷してみてください。問題が表示されます。

于 2015-04-24T06:26:31.880 に答える
0

の位置を変更しkeyboard.nextLine();ます。

keyboard.nextLine();
answer = keyboard.nextLine();

あなたのコードの答えでは、n2の値を取得してEnterキーを押すと、次の行(つまりenter)が表示されます。


以下のコードを実行して、コードをテストできます

System.out.println("Enter yes to continue or any other key to end");
answer = keyboard.nextLine();
System.out.println("Answer : " + answer);
System.out.println(keyboard.nextLine());
于 2015-04-24T06:29:54.903 に答える
0
Scanner keyboard = new Scanner(System.in);

      int n1, n2, sum;
      String answer = "Yes";

while (answer.equals("Yes"))
{
 System.out.println("Enter number 1: ");
      n1 = keyboard.nextInt();

      System.out.println("Enter number 2: ");
      n2 = keyboard.nextInt();

      sum = n1 + n2;

      System.out.println("Number 1\t" + "Number 2\t" + "Sum");
      System.out.println("__________________________________");
      System.out.println(n1 + "\t\t" + n2 + "\t\t" + sum);

      System.out.println("Enter yes to continue or any other key to end");
      answer = keyboard.nextLine();

      keyboard.nextLine();
}
于 2015-04-24T06:31:38.587 に答える