정수를 검사하고 사용자가 17 이상의 정수를 올바르게 입력 할 때까지 루핑을 계속하는 함수를 만들려고합니다. 그러나 잘못된 입력 ('K'또는 '&')을 입력하면 무한 루프에 빠질 수 있습니다. 나는 또한 내 캐치에 재귀를 사용하고올바른 입력을 얻기 위해 try 및 catch를 반복하는 방법은 무엇입니까?
불러 :
public static int getAge(Scanner scanner) {
int age;
boolean repeat = true;
while (repeat) {
try
{
System.out.println("Enter the soldier's age: ");
age = scanner.nextInt();
repeat = false;
}
catch(InputMismatchException exception)
{
System.out.println("ERROR: You must enter an age of 17 or higher");
repeat = true;
}
}
return age;
}
가능한 중복 : 이것은 당신이
nextInt()
를 호출 다음에, 그것은 동일한 오래된 쓰레기 대신 작업 할 새로운 데이터가있을 것이라는 점을 보장합니다 잘못된 데이터 입력 (Java)] (https://stackoverflow.com/questions/27208796/trying-to-use-try-catch-in-a-while-loop-until-the-user-answers-correctly-without) – vinS해결책에 문제가 있다고 생각하지 않습니다. 질문을 잊어 버렸습니다. –