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())

Ответы на вопрос(4)

Ваш ответ на вопрос