我正在尝试创建一个简单的玩家选择循环,但是如果用户试图输入不是整数的东西,那么循环就会从某种意义上“抛出”。我不知道我需要做什么,所以这个代码不会丢失以防输入不当。
int player;
boolean playerCreated = false;
while (playerCreated == false) {
try {
player = scan.nextInt();
if (player != 1 && player != 2) {
throw new Exception();
}
playerCreated = true;
}
catch (Exception e) {
System.out.println("Please input a valid player selection. (1 or 2)");
continue;
}
}
答案 0 :(得分:1)
如果在键入时输入非整数类型的类型,则在遇到if语句之前将抛出异常。因此,它不适用于下面指定的catch语句。
如果在catch语句中处理异常,则continue将导致扫描保留该值并导致catch语句的内容为无限。因此,您需要在while语句启动时初始化扫描。
while (playerCreated == false) {
try {
scan=new Scanner(System.in);
player = scan.nextInt();
if (player != 1 && player != 2) {
throw new Exception();
}
playerCreated = true;
}