簡體   English   中英

Java try for for while while循環不循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM