[英]Java try catch for do while loop not looping
我在嘗試嘗試catch for do 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.");
}
我想為do while循環做的是當用戶輸入6以外的任何終止時,它將繼續提示用戶輸入。 對於每種情況,它將采用某種方法。
然后,我嘗試為InputMismatchException嘗試catch,因為我的Scanner從用戶輸入獲取整數。 但是,在我輸入字母而不是整數之后,程序才自行終止。 我想在用戶輸入字母表時嘗試做,它會繼續提示用戶輸入正確的內容。
有任何想法嗎? 提前致謝。
我在想是否應該再做一次包裝整個try catch?
喜歡:
try {
choice = sc.nextInt();
} catch(InputMismatchException e){
System.out.println("Please enter option between 1-6.");
sc.next();
continue;
}
如果用戶輸入無效輸入,它將轉到catch塊並繼續循環。 刪除外部try catch塊。 它不是必需的
要處理字符和無效數字,您可以執行以下操作:
do {
System.out.println("Enter your option: ");
try{
choice = sc.nextInt();
catch(InputMismatchException e){
choice = 0;
sc.next();
}
switch (choice) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
default:
System.out.println("Please enter option between 1-6.");
break;
}
} while (choice != 6);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.