試圖做一個嘗試捕捉,當我有一些問題做while循環:用於做Java的嘗試捕捉while循環不循環
try{
do {
System.out.println("Enter your option: ");
choice = sc.nextInt();
switch (choice) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
}
} while (choice != 6);
}catch(InputMismatchException e){
System.out.println("Please enter option between 1-6.");
}
我試圖對事要做,而循環是當用戶輸入除終止的6以外的任何內容,它將繼續提示用戶輸入。對於每種情況,都會採用某種方法。
然後,我試着做一個InputMismatchException的try catch,因爲我的掃描器正在從用戶輸入中取整數。但是,在我輸入字母而不是整數後,程序只是自行終止。我正在嘗試像用戶輸入字母時那樣,它會一直提示用戶輸入正確的信息。
任何想法?提前致謝。
我在想,如果我應該讓另一個做,而包裝整個嘗試趕上?
如果拋出一個異常,那麼它會帶你到你抓這是你的,而循環之外,並因此終止。簡單地把你的try-catch放到你想要捕獲異常的地方,即在for循環中。 – ManoDestra
是的,我根據其中一個答案中的建議轉換了它。但問題是,當用戶輸入字母時,程序給我一個無限循環的「輸入你的選擇:」而不需要用戶輸入 –
只要你重新定義你在輸入中檢查的變量(嘗試中的那個),那麼它將不會是一個「無限」的循環。用戶輸入有效的輸入然後繼續進行將是可行的。另一種方法是根本不使用nextInt,只需從用戶那裏獲取字符串輸入並自己進行驗證,而不是使用try-catch機制。 – ManoDestra