В каждом цикле вы звоните scanner.nextInt()
и scanner.hasNextInt()
.Но вы не используете результат hasNextInt()
осмысленно (вы могли заметить, что ваш вывод «Неверное число» не тот, что происходит, если вы вводите что-то, что не является числом).
Первый вызовдо nextInt()
блоков, пока вы не введете число.Затем hasNextInt()
снова заблокируется, потому что номер уже прочитан, и вы спрашиваете, будет ли новый.Следующий номер читается из System.in
, но вы фактически не используете его в этой итерации (вы просто спросили, есть ли он).Тогда в следующих итерациях nextInt()
не будет блокироваться, потому что сканер уже извлек число из System.in
и может немедленно его вернуть, поэтому все последующие запросы, которые вы видите, фактически ждут ввода на hasNextInt()
.
Всего 11 входных событий: Первые nextInt()
плюс все 10 hasNextInt()
с