У меня возникла проблема при попытке выполнить инструкцию try-catch внутри do while loop.I попросить пользователя сначала ввести букву, а затем номер и если он правильно вводит номер программы. Если он вводит букву вместо номера, программа должна сказать «Произошла ошибка, пожалуйста, введите номер» и попросите пользователя ввести номер снова, но каждый раз, когда я набираю букву вместо номера, программа переходит в бесконечный цикл и не позволит мне вводить новое значение , И просто идет «Произошла ошибка, вы должны ввести номер» «Введите номер».Делать пока идет бесконечно с try catch
public class OmaBrisem {
public static void main(String[] args) {
Scanner tastatura = new Scanner(System.in);
boolean b = true;
int a = 0;
String r = "";
System.out.println("Please enter a letter");
r = tastatura.next();
do {
try {
System.out.println("Please enter numerical value");
a = tastatura.nextInt();
b = true;
} catch (Exception e) {
System.out.println("An error occured you must enter number");
b = false;
}
} while (!b);
}
}
я вроде * до тепловой смерти вселенной, или машина, наконец, ломается, что наступит первым * –
Когда вы вводите две буквы в то же время ваш код также не работает в бесконечное время цикла – HasS
@HasS, да, когда есть промежуточная новая строка, которая заставляет 'findInLine' терпеть неудачу. - Я тестировал только одну строчку. Хотя код был предназначен только для примера, чтобы проиллюстрировать концепцию, я исправил обновление. Если есть * еще * проблема, сообщите мне точные данные теста, которые вы используете. – paxdiablo