所以我正在構建一個程序,從用戶輸入採取整數。我有什麼似乎是一個非常直接的try/catch塊,如果用戶沒有輸入一個int,應該重複該塊直到他們這樣做。下面的代碼的相關部分:嘗試/趕上與InputMismatchException創建無限循環
import java.util.InputMismatchException;
import java.util.Scanner;
public class Except {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean bError = true;
int n1 = 0, n2 = 0, nQuotient = 0;
do {
try {
System.out.println("Enter first num: ");
n1 = input.nextInt();
System.out.println("Enter second num: ");
n2 = input.nextInt();
nQuotient = n1/n2;
bError = false;
}
catch (Exception e) {
System.out.println("Error!");
}
} while (bError);
System.out.printf("%d/%d = %d",n1,n2, nQuotient);
}
}
如果我的第二個整數輸入0,那麼try/catch語句不正是它應該和讓我再次把它英寸但是,如果我通過爲其中一個數字輸入5.5而導致InputMismatchException,它只是在無限循環中顯示我的錯誤消息。爲什麼會發生這種情況,我能做些什麼呢? (順便說一下,我試圖明確打字InputMismatchException時能趕上的說法,但它並沒有解決問題。
這真的太棒了,謝謝!你能否詳細解釋爲什麼你需要'next()'命令?我有一些想法,但對我來說有點不清楚。 –
@limp_chimp更新了問題。 –