Как настаивать на том, что пользовательский ввод является int?

Основная проблема здесь .. Я начну с того, что прошу не отвечать ни на какой код, так как это, скорее всего, только смущает меня (программирование noob). Я ищу четкое объяснение того, как решить эту проблему, которая у меня возникла.

У меня есть сканер, который читает ввод от пользователя. Пользователю предлагается ввести значение от 1 до 150 (только целые числа). Я получаю значение следующим образом:

    Scanner scan = new Scanner(System.in);
    int input = scan.nextInt();

И продолжить с моей программой, и все работает отлично.

К сожалению, код не является пуленепробиваемым, поскольку любой ввод, не являющийся целым числом, может его сломать (буквы, символы и т. Д.).

Как я могу сделать код более надежным, чтобы он проверял, что был введен только int?

Вот результаты, на которые я надеюсь:

Допустим, вход был:

23 -> valid
fx -> display an error message, ask the user for input again (a while loop would do..)
7w -> error, again
3.7 -> error
$ -> error
etc

Ответы на вопрос(7)

Ваш ответ на вопрос