Java: бесконечный цикл с использованием Scanner in.hasNextInt ()
Я использую следующий код:
while (invalidInput)
{
// ask the user to specify a number to update the times by
System.out.print("Specify an integer between 0 and 5: ");
if (in.hasNextInt())
{
// get the update value
updateValue = in.nextInt();
// check to see if it was within range
if (updateValue >= 0 && updateValue <= 5)
{
invalidInput = false;
}
else
{
System.out.println("You have not entered a number between 0 and 5. Try again.");
}
} else
{
System.out.println("You have entered an invalid input. Try again.");
}
}
Однако, если я введу 'w', он скажет мне: «Вы ввели неверный ввод. Попробуйте еще раз». и затем он перейдет в бесконечный цикл с текстом «Укажите целое число от 0 до 5: вы ввели неверный ввод. Попробуйте еще раз».
Почему это происходит? Разве программа не должна ждать ввода пользователя и нажимать ввод каждый раз, когда достигает оператора:
if (in.hasNextInt())