我的问题是,对于第一个catch中,如果不添加input.nextLine()这句,在输入错误如输
入一个a的情况下,程序会死循环而不是正常的进入阻塞待我重新输入,而第二个
catch则不用添加这句话,我想问一下这是为什么?请教大家,谢谢。
代码如下:
public class Demo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num1 = 0;
int num2 = -1;
int result = 0;
boolean continueInput = true;
do {
try {
System.out.print("请输入被除数:");
num1 = input.nextInt();
System.out.print("请输入除数:");
num2 = input.nextInt();
result = num1 / num2;
continueInput = false;
} catch (InputMismatchException ex) {
System.out.println("输入非法,请输入正确的数值");
input.nextLine();
} catch (ArithmeticException ex) {
System.out.println("除数不能为0,清重新输入!");
}
} while (continueInput);
System.out.println("result = " + result);
}
}