在下面的代码中,即使在我提供输入之前,我也会在第80行获得InputMismatchException
。这是为什么?
try {
loop:while(true)
{
choice=sc.nextInt();
switch (choice) {
case 1:
term=3;
break loop;
case 2:
term=6;
break loop;
default:
System.out.println("Invalid Input.. Enter again");
choice=sc.nextInt();
}
}
}
catch (InputMismatchException e2) {
System.out.println("Wrong Format!! Enter a number");
choice=sc.nextInt(); //line 80
}
答案 0 :(得分:1)
消耗行尾:
catch (InputMismatchException e2) {
System.out.println("Wrong Format!! Enter a number");
sc.nextLine(); // add this
choice=sc.nextInt(); //line 80
}
此外,您的循环中可能不应该有两个choice=sc.nextInt();
。
你想把try-catch放在循环中,以便在捕获到异常后留在循环中。