1. 程式人生 > >在switch case 語句中能否使用continue關鍵字?為什麼?

在switch case 語句中能否使用continue關鍵字?為什麼?

  毋庸置疑,在switch case 語句中不能使用continue 關鍵字。continue語句的作用是跳出本次迴圈,轉入執行下一次迴圈。故而,continue語句只能用於迴圈語句中,而switch case語句為多分支選擇語句,不是迴圈語句,所以在switch case 語句中是不能使用continue 關鍵字的(除非把continue關鍵字放在迴圈語句中)。可以通過下面的例子簡單驗證:

源程式####

#include<stdio.h>
#include<math.h>

int main()
{
    int score = 0;
    printf("請輸入學生成績:\n");
    scanf("%d", &score);
    switch ((score / 10))
    {
    case 9:
        printf("優秀\n");
        break;
    case 8:
        printf("成績等級為:良好\n");
        break;
    case 7:
        //continue;
    case 6:
        printf("成績等級為:及格\n");
        break;
    case 5:
    case 4:
    case 3:
    case 2:
    case 1:
    case 0:
        printf("成績等級為:不及格\n");
        break;
    default:
        printf("輸入成績有誤!\n");
    }

    return  0;
}

       這是我們在剛開始接觸C語言的時候都遇到過的例子,從鍵盤輸入一個學生成績,判斷輸出相應等級,當我們在程式碼中加入continue關鍵字時,如果能夠使用,則我們期望它跳過case6後面的語句。但事與願違,程式編譯會報錯。提示:非法continue,continue只能在迴圈中使用。這也進一步驗證在switch case語句中不能使用continue關鍵字。

        但是當我們把switch case 語句加入一個迴圈中時,使用continue語句可以編譯通過,但是我們對迴圈的控制又不好處理,在迴圈中使用switch case語句比較少見,所以個人覺得,在switch case 語句中最好不要出現continue關鍵字。

       continue是我們在寫程式碼時使用比較多的關鍵字,使用continue關鍵字時需要注意一下幾點: 
        ① continue的作用是結束本次迴圈,即跳過迴圈體中下面尚未執行的部分,接著進行下一次是否執行迴圈的判定,用來加速迴圈; 
        ② continue語句只結束本次迴圈,而不是終止整個迴圈的執行; 
        ③ 在while迴圈內部的continue關鍵字會使程式直接到迴圈判斷條件部分。即:本次迴圈中continue後面的程式碼不會再執行,而是直接跳到while語句的判斷部分,進行下一次迴圈的入口判斷。 
        ④ 在for迴圈中,continue跳出迴圈後來到迴圈變數的調整部分,例如:執行 i++表示式。