break和continue的用法區別

C語言中,break語句可用於從for、while與do-while等循環中提前退出,也可以用從switch語句中跳出。在多層循環中break實現從最內層循環退出到上一級循環。

continue語句用於使for、while與do-while語句開始下一次循環的執行。在while與do-while中,continue語句的執行意味着立即執行測試部分;在for循環中,則意味着使控制轉移到遞增循環變量部分

注意continue語句只用於循環語句,不用於switch語句。在某個循環包含的switch語句中的continue語句,將導致進入下一次循環。


下面就來說說在某個循環中包含的switch語句中的continue語句和break語句的區別。

#include <stdio.h>
int main()
{
    int i, s1 = 0, s2 = 0, s3 = 0;
    for(i = 1; i <= 4; i++)
    {
        switch(i) {
            case 1: s1++;
            case 2: s2++; break;
            case 3: s3++; continue;
        }
        s1++;
        printf("%d,%d,%d\n", s1, s2, s3);
     }
     return 0;
}

運行的結果如下:

wKioL1MseyqQOXmSAAA_vSBNUYU773.jpg

如上所示 :使用break將跳出本switch但仍將執行for循環的剩餘語句;使用continue則直接跳至i++進行下一次for循環執行。

第一次循環,case 1, s1先加1, s2也加1,遇到break後跳出switch,執行s1++,輸出這三個數;

第二次循環,case 2, s2加1,遇到break後跳出switch,執行s1++,輸出這三個數;

第三次循環,case 3, s3加1,遇到continue, 跳出本次循環(不執行s1++和printf());

第四次循環,case 4,switch語句中沒有匹配的,跳過switch,執行s1++,輸出三個數。

這也就是爲什麼四次循環卻只有三次輸出的原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章