Как в условии цикла уместить проверку на тип переменной и проверку по значению
while (!sc.hasNextInt() || a > 5) {
System.out.print("Ошибка. Введите а: ");
sc.next();
}
Мне нужно, чтобы при вводе слова/нецелого числа/числа, больше 5 выводилась ошибка с повторным вводом до тех пор, пока не будет удовлетворяться условие в цикле. Но почему-то конкретно при вводе а > 5 не происходит ничего, а при вводе, например, слова, выдается исключение:
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:943)
at java.base/java.util.Scanner.next(Scanner.java:1598)
at java.base/java.util.Scanner.nextInt(Scanner.java:2263)
at java.base/java.util.Scanner.nextInt(Scanner.java:2217)
at mineproject.Okno.main(Okno.java:8)
Источник: Stack Overflow на русском