@devpy14

Почему в цикле while Scanner не ждет ввода пользователя?

Мне нужна от пользователя какая-то цифра, не буква. При первом запуске программы на строчке " firstNum = scanner.nextInt();" программа ждет, пока пользователь введет что-нибудь в консоль. Допустим, пользователь ввел туда не то, что нужно, а именно какие-то буквы, но тогда программа бесконечно печатает на экран:
"Only numbers, not letters, please
Enter the first number:"
Почему так происходит? Почему, когда программа в очередной раз доходит до строки " firstNum = scanner.nextInt();", она не ждет ввода пользователя?

Scanner scanner = new Scanner(System.in);
        int firstNum;

        while (true) {
            try {
                System.out.println("Enter the first number:");
                firstNum = scanner.nextInt();
                break;
            } catch (InputMismatchException e) {
                System.out.println("\nOnly numbers, not letters, please");
            }
        }
  • Вопрос задан
  • 851 просмотр
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Перенесите Scanner scanner = new Scanner(System.in); внутрь блока try : так он будет инициализироваться каждый раз заново.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы