Предложение пользователю продолжить не работать, java

Мне нужна помощь. Я хочу спросить пользователя, хочет ли он попробовать еще раз, но, похоже, что-то не так с моим кодом, потому что он не работает.

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



}

   }

Когда я запускаю его, он сохраняет ответ пользователя, но программа не повторяется. Как я могу это исправить?


person Neils Medereck    schedule 24.04.2015    source источник
comment
исправил, спасибо ребята.   -  person Neils Medereck    schedule 25.04.2015


Ответы (2)


Переместите keyboard.nextLine(); после n2 = keyboard.nextInt();, чтобы принять и игнорировать оборванный символ новой строки во входном потоке, оставленный вызовом nextInt().

Когда я запускаю его, он сохраняет ответ пользователя. Попробуйте напечатать то, что он сохранил в поле answer, тогда вы увидите проблему.

person TheLostMind    schedule 24.04.2015

Измените положение keyboard.nextLine();.

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

В вашем коде ответ получает следующую строку (т.е. enter), которая появляется, когда вы берете значение n2 и нажимаете ввод.


Вы можете проверить свой код, выполнив приведенный ниже код

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());
person Naman Gala    schedule 24.04.2015