Мой заголовок немного беден, но вот в чем проблема. Я использую класс Scanner для ввода двух входов, обоих целых чисел. Если он не является целым числом, он сообщает пользователю ввести другой ввод. Это отлично работает для первого целого числа, но во втором целочисленном (и любых последовательных) оно печатает текст дважды.Хотя проверка цикла на целое число в сканере активируется дважды при втором прогоне
Код:
public class Project1 {
public static void main(String[] args) {
// creates a new scanner
Scanner scanner = new Scanner(System.in);
// rejects input if the first token is not an integer
System.out.println("Enter the first integer:");
while(!scanner.hasNextInt()) {
scanner.nextLine();
System.out.println("That's not an integer, please enter again:");
}
// stores integer in variable when first token is an integer
int num1 = scanner.nextInt();
/* ======== repeats for second integer ======== */
System.out.println("Enter the second integer:");
while(!scanner.hasNextInt()) {
scanner.nextLine();
System.out.println("That's not an integer, please enter again:");
}
// stores integer in variable when first token is an integer
int num2 = scanner.nextInt();
System.out.println(num1 + num2);
}
}
Вот результат:
"Enter the first integer:"
>1.2
"That's not an integer, please enter again:"
>1
"Enter the second integer:"
>2.3
"That's not an integer, please enter again:"
"That's not an integer, please enter again:"
>2
"3"
Почему это повторять дважды для второго числа?