在我的程序中,我试图让用户输入 1-3 之间的整数,然后根据他们输入的内容执行某些操作。如果它不是数字或不是选项之一,那么它将允许他们重新输入有效选项。
我遇到的问题是,我很难集思广益,如何不让它无限循环,并在控制台告诉他们输入无效输入后允许他们输入数字。
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;
}
}
当您输入无效的输入时,需要将其清除。添加scan.next()
当输入异常触发时清除它next() http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next%28%29:
catch(InputMismatchException input) {
System.out.println("That's not an option!");
scan.next();
i-=1;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)