这段代码中的try catch为什么会无限循环
java吧
全部回复
仅看楼主
level 2
这是一段如果判定不是整数就让你一直输入的代码
import java.util.Scanner;
public class Try{
public static void main(String[] args) {
Scanner newScanner = new Scanner(System.in);
boolean a = true;
System.out.println("请输入一个整数");
do {
try{
double num = newScanner.nextDouble();
int num1 = (int)num;
if(num - num1 == 0){
System.out.println("输入正确!");
a = false;
}
}catch(Exception e) {
System.out.println(e.getMessage());
System.out.println("请重新输入!");
}
}while(a);
}
}
但是如果输入一个字符或者字符串,就会开始无限循环,然后异常信息是null
我试过创建一个变量来等于我输入的值,这样就正常了。
这个为啥会无限循环啊!
2021年12月24日 03点12分 1
level 10
Scanner放循环里面去啊
2021年12月24日 04点12分 2
那如果放在循环里,我输入一个字符串岂不是就不能捕捉到异常了
2021年12月24日 05点12分
1