내 프로그램에서 사용자가 1-3 사이의 int 값을 입력하도록 한 다음 입력 값에 기반하여 무언가를 수행하려고합니다. 숫자가 아니거나 옵션 중 하나가 아닌 경우 올바른 옵션을 다시 입력 할 수 있습니다.스캐너를 사용하여 입력 값을 읽는 것은 Java에서 무한 루프를 발생시킵니다.
내가 가지고있는 문제는 무한 루프를 일으키지 않는 방법에 대해 브레인 스토밍하는 데 어려움을 겪고 있으며 콘솔에 잘못된 입력을 입력했다고 알린 후 번호를 입력하도록 허용하고 있습니다.
int i = 0;
while (i < 1) {
try {
int level = scan.nextInt();
i+=1;
if (level == 1) {
System.out.println("You selected level 1!");
//Start the game
} else if (level == 2) {
System.out.println("You selected level 2!");
//Start the game
} else if (level == 3) {
System.out.println("You selected level 3!");
//Start the game
} else {
System.out.println("That's not an option!");
i-=1;
}
} catch(InputMismatchException input) {
System.out.println("That's not an option!");
i-=1;
}
}
당신이 내가 사용자가 1-3 사이에 유효한 입력에 입력되었는지 확인하는 방법이 필요하지만 그들이 할 수있는 능력이 없다면 유효한 입력을 재 입력 – Dici
을 달성하기 위해 원하는 것을 명확하지 않다. –
내 대답을 참조하십시오, 나는 코드가 인수 분해되고 루프의 종료 조건이 명확 해 지므로 현재의 대답보다 낫다고 생각합니다. – Dici