我試圖從用戶那裏獲得10個整數輸入。另外,我想在用戶輸入錯誤類型的數據(不是整數)時處理異常。但是,我在使用for循環& try/catch時遇到此問題。 例如,如果我在第4個數字處輸入String。我會得到這樣的結果:在Java中使用For循環時嘗試/捕捉問題
Type 1. integer: 15
Type 2. integer: 152
Type 3. integer: 992
Type 4. integer: jj
Invalid number
Type 5. integer: Invalid number
Type 6. integer: Invalid number
Type 7. integer: Invalid number
Type 8. integer: Invalid number
Type 9. integer: Invalid number
Type 10. integer: Invalid number
Integers: [15, 152, 992]
我不知道如何重新進入循環異常被捕獲後。
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
Integer integer;
List<Integer> integerList = new ArrayList<Integer>();
for (int i = 1; i < 11; i ++) {
System.out.print("Type " + i + ". integer: ");
try {
integer = input.nextInt();
integerList.add(integer);
}
catch (InputMismatchException exc) {
System.out.println("Invalid number");
}
}
System.out.println("Integers: " + integerList);
}
究竟什麼是您發佈與輸出的問題?什麼是問題? – EJP
首先您需要創建一個MCVE:http://stackoverflow.com/help/mcve然後,您需要重置掃描儀緩衝區:http://stackoverflow.com/questions/10604125/how-can-i-clear-the -scanner-buffer-in-java最後,您需要重置'i',以便重試相同的輸入。 –