Как говорится в ответе @Elliott Frisch, вызов .nextInt()
просто не вернется, пока не будет введено действительное число какого-либо рода (или, если пользователь отправит что-то еще, вместо этого произойдет InputMismatchException
.
Одной простой альтернативой является просто .. не вызывать .nextInt()
затем. Call .next()
, проверить, является ли полученная строка пустой, и, если нет, превратить ее в целое число, используя: int userNumber = Integer.parseInt(theStringYouGotFromScannerNext);
.
NB1: Java соглашение гласит, что переменная имеет имя 'userNumber1', а не 'user_number1'. Когда в Риме и все такое.
NB2: если вы хотите, чтобы ваш сканер читал 1 ответ каждый раз пользователь нажимает ввод, звоните scanner.useDelimiter("\r?\n");
сразу после new Scanner
. Из коробки он дает вам 1 ответ на пробел, что обычно не то, что вам нужно.