Я посмотрел документацию по методам, но до сих пор не могу понять, как они работают.Вот мои вопросы: .hasNextInt () проверяет следующее целочисленное значение и ничего не потребляет, но в моем коде ниже, когда он появляется впервые, он позволяет пользователю ввести значение;это почему?После этого мне нужно использовать .next (), чтобы очистить текущее значение объекта сканера, который я использую, и мне не будет предложено новое значение, если я удалю его из цикла while.
Что касается .nextInt(), только на первой итерации в коде проверяется последнее целочисленное значение в объекте сканера, но при повторном вводе это позволяет мне ввести новое значение.Все это кажется очень противоречивым, и мне трудно понять, что происходит под капотом.
int integer=0;
Scanner scan = new Scanner(System.in);
System.out.println("Please enter an integer");
while(!scan.hasNextInt())
{
System.out.println("Wrong");
scan.next();
}
integer = scan.nextInt();
System.out.println(integer);
int newNumber = scan.nextInt();
System.out.println(newNumber);