Считывание числа с консоли - как спрашивать пользователя пока он не введет что нужно?

Рейтинг: 0Ответов: 1Опубликовано: 27.04.2015

Собственно вопрос как начинающего программиста на Java, в ниже указанном коде выходит ошибка при вводе любой буквы, знаю что это целочисленный тип, но мне нужно что бы при вводе буквы цикл так же задавал тот же вопрос и ждал от пользователя того что бы он ввел число а не букву! и при проверке числа вышел из цикла...

int age;
do {
  System.out.print(+age+"Не верный ввод данных, повторите еще раз: ");
  age =   myScanner.nextInt();
}while (age <= 150);

Ответы

▲ 3Принят

Делайте не так. Вводите строку и пробуйте сконвертировать её в int. Если не получается — сообщайте пользователю всё, что про него думаете.

int age = -1;
while (true)
{
    System.out.println("Возраст?");
    // вводим строку
    String line = myScanner.nextLine();
    try  
    {
        // пробуем сконсертировать в число
        age = Integer.parseInt(line);
        // если не получится, мы вылетим в catch
        // проверяем значение
        if (age > 150)
            System.out.println("Больше 150 не бывает!");
        else
            break; // всё хорошо, завершаем цикл ввода
    }
    catch (NumberFormatException e)
    {
        // если введено не число, мы окажемся тут
        System.out.println("Это вообще не число");
    }
}