java吧 关注:1,216,067贴子:12,663,854
  • 0回复贴,共1

这段代码中的try catch为什么会无限循环

取消只看楼主收藏回复

这是一段如果判定不是整数就让你一直输入的代码
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
我试过创建一个变量来等于我输入的值,这样就正常了。
这个为啥会无限循环啊!


IP属地:陕西1楼2021-12-24 11:04回复