Все, что я пытаюсь выполнить с помощью этого кода, это проверить, что вход пользователя - это целое число, а затем дать им 3 шанса при повторном вводе его, если это не правильный тип данных. И затем, наконец, выбросив исключение, если они достигнут отметки «maxTries».Ошибка Java try catch
Любая помощь была бы принята с благодарностью. Приветствия.
boolean correctInput = false;
int returnedInt = 0;
int count = 0;
int maxTries = 3;
Scanner kybd = new Scanner(System.in);
while(!correctInput)
{
try
{
System.out.println("\nInput your int, you have had:" + count + " tries");
returnedInt = kybd.nextInt();
correctInput = true;
}
catch(InputMismatchException e)
{
System.out.println("That is not an integer, please try again..");
if (++count == maxTries) throw e;
}
}
return returnedInt;
В чем проблема с этим кодом? Сообщения об ошибках? Разве это не делает то, что должно быть, и если да, то чем оно занимается? – JJJ
Я думаю, вы не устанавливать correctInput к ложным, так что выскакивает из цикла –
Струнный Это не является целым числом, пожалуйста, попробуйте еще раз .. Input ИНТ, вы имели: 1 пытается Исключение в потоке «Main "java.util.InputMismatchException это не является целым числом, пожалуйста, попробуйте еще раз .. Input ИНТ, вы имели: 2 попытки это не является целым числом, пожалуйста, попробуйте еще раз .. \t в java.util.Scanner .throwFor (Scanner.java:909) \t на java.util.Scanner.next (Scanner.java:1530) на java.util.Scanner.nextInt (Scanner.java:2160) \t в java.util.Scanner.nextInt (Scanner.java:2119) \t в Main.inputInt (Main.java:25) \t в Main.main (Main.java:10) Java Результат: 1 BUILD SUCCESSFUL (общее время: 5 секунд) – user258873