Я не знаю, является ли это недостатком сна, но я просто не понимаю, почему это происходит.
У меня есть код, который запрашивает у пользователя значение int
.Если пользователь наберет какую-нибудь глупую вещь, например «двадцать семь», вместо любого числа, он выдаст исключение InputMismatchException
.Все это хорошо.
По какой-то причине пользовательское значение вводится в мой код, после чего все портится ...
case 'r':
System.out.print("What height to reap at : ");
try {
reapAt = keyboard.nextInt();
canadaforestservice.reapTrees(initTreeHeight, initTreeGrowPerYear, reapAt);
} catch (InputMismatchException e) {
System.out.println("ERROR: Invalid height");
}
System.out.println();
System.out.print("(D)isplay, (N)ew, (Y)ear, (R)eap, (S)ave, (L)oad, e(X)it : ");
menuItems = keyboard.next().charAt(0);
break;
Ожидаемый результат:
(D) isplay, (N) ew, (Y) ухо, (R) eap, (S) ave, (L) oad, e (X) it: r
На какой высоте пожинать:двадцать семь
ОШИБКА: Неверная высота
(D) - игра, (N) ew, (Y) ухо, (R) eap, (S) пр., (L) oad, e (X) it:
Мой результат:
(D) - игра, (N) ew, (Y) ухо, (R) eap, (S) пр., (L)oad, e (X) it: r
На какой высоте пожинать: двадцать семь
ОШИБКА: неверная высота
(D) isplay, (N)ew, (Y) ear, (R) eap, (S) ave, (L) oad, e (X) it: ОШИБКА: неверный параметр, повторите попытку "Буква T переносится из предыдущегопользовательский ввод "
(D) isplay, (N) ew, (Y) ear, (R) eap, (S) ave, (L) oad, e (X) it: