关于try...catch里面input出现死循环
出现死循环:
private static double divede() {
Scanner input=new Scanner(System.in);
while (true){
try {
System.out.println("请录入第一个数");
int num1=input.nextInt();
System.out.println("请录入第二个数");
int num2=input.nextInt();
if(num2==0)
throw new ArithmeticException("除数不能为零");
//由于这个异常没有被catch住,因此除数为零的时候直接结束
return num1/num2;
} catch (InputMismatchException e) {
System.out.println("输入不合法,请重新录入");
input.next();
/*不加这一行的话数据缓冲区内上次输入的异常还在
并没有清除,这时继续异常
就又catch到exception,还是错误
于是这个过程就一直重复下去了
需要加这一行清除抓到的exception*/
}
}
}
也可以将input的定义放在try里面

浙公网安备 33010602011771号