Java 捕获InputMismatchExpection时的常量循环,而不是再次重试/扫描键盘输入
每当捕捉到输入不匹配时,就会出现无限循环(例如输入];),而不是再次尝试“option=scanner.nextInt();”。然而,输入一个正常的无效输入,如“7”就可以了。我不想使用“break”;因为我希望它留在循环中并再次扫描输入,那么我将如何处理这个问题Java 捕获InputMismatchExpection时的常量循环,而不是再次重试/扫描键盘输入,java,if-statement,infinite-loop,inputmismatchexception,Java,If Statement,Infinite Loop,Inputmismatchexception,每当捕捉到输入不匹配时,就会出现无限循环(例如输入];),而不是再次尝试“option=scanner.nextInt();”。然而,输入一个正常的无效输入,如“7”就可以了。我不想使用“break”;因为我希望它留在循环中并再次扫描输入,那么我将如何处理这个问题 System.out.println("Select option [1, 2, 3, 4] :> "); int option = 0; while(runOptions){ try{
System.out.println("Select option [1, 2, 3, 4] :> ");
int option = 0;
while(runOptions){
try{
option = scanner.nextInt();
}catch(InputMismatchException e){
System.out.println("ERROR Try Again...\n");
System.out.println("\nSelect option [1, 2, 3, 4] :> \n");
}
if(option != 4){
if(option == 1){
doAddOption();
runLoop = false;
}
else if(option == 2){
doDelete();
runLoop = false;
}
else if(option == 3){
doDeleteRegistry();
runLoop = false;
}
else{
System.out.println("INVALID Try again..");
}
}
你说的
有无限循环是什么意思?
当我故意输入无效的非int值时,我得到了InputMismatchExpection消息的无限循环,当它返回时,它不是运行“try{}”代码,而是出于某种原因再次打印错误,如下所示: