Я не дам вам весь код, а только подсказку или псевдо-код.В качестве упражнения вы можете реализовать его в соответствии с вашими требованиями.
System.out.println("Enter month:");
while (true) {
try {
int min = sc.nextInt();
break;
} catch (InputMismatchException ex) {
System.err.println("Invalid input, please enter again");
sc.nextLine(); // <----- advance the scanner
}
}
Здесь логика заключается в цикле, пока мы не получим правильный ввод.Если это неверный ввод, цикл никогда не прерывается.
Кроме того, я бы рекомендовал вам создать только один метод для выборки правильных входных данных и вызова его соответственно из других методов.Вместо того, чтобы дублировать эту логику везде.