int choice = 0;
while ((choice != 1) || (choice !=2)){
System.out.println("1. Option 1");
System.out.println("2. Option 2");
try{
choice = scanner.nextInt();
}
catch(InputMismatchException e){
System.out.println(e);
}
if (choice == 1){
System.out.println("Option 1");
break;
}
if (choice == 2){
System.out.println("Option 2");
break;
}
System.out.println("Please enter a valid choice.");
}
我正在尝试处理输入非int的情况。为什么这会旋转成无限循环?在我尝试添加try catch块之前,它工作正常。
答案 0 :(得分:0)
当然会,因为你在while循环中捕获错误而没有设置任何条件来在捕获错误时退出循环,所以你永远不会退出。
向while循环添加另一个条件以在出错时退出,或者在发生错误时将选项设置为1或2,或者在检测到错误时中断。
int choice = 0;
while ((choice != 1) || (choice !=2)) {
System.out.println("1. Option 1");
System.out.println("2. Option 2");
try{
choice = scanner.nextInt();
} catch(InputMismatchException e) {
System.out.println(e);
}
switch(choice) {
case 1:
System.out.println("Option 1");
break;
case 2:
System.out.println("Option 2");
break;
default:
System.out.println("Please enter a valid choice.");
break;
}
}
答案 1 :(得分:0)
用
替换你的try catchcache/modules/ModuleName/ModuleNameVardefs.php