C語言中文網 目錄

break和continue,C語言break和continue的用法和區別

break 語句很重要,用得非常多,初學者一定要掌握。continue 語句雖然沒有 break 語句用得多,但也經常用到,而且不可或缺,需要用到 continue 的時候其他語句是無法替代的。

前面已經介紹過 break 語句,它不僅可以跳出“循環體”,還可以跳出 switch。但事實上,break 也只能用于這兩種情況。break 語句不能用于循環語句和 switch 語句之外的任何其他語句中。

不管是 for 循環,還是 while 循環,或者是 do…while 循環,都可以用 break 跳出來,但是 break 只能跳出一層循環。當有多層循環嵌套的時候,break只能跳出“包裹”它的最里面的那一層循環,無法一次跳出所有循環。

同樣,在多層 switch 嵌套的程序中,break 也只能跳出其所在的距離它最近的 switch。但多層 switch 嵌套實在是少見。

continue 的用法十分簡單,其作用為結束本次循環,即跳過循環體中下面尚未執行的語句,然后進行下一次是否執行循環的判定。

continue和break的區別

continue 語句和 break 語句的區別是,continue 語句只結束本次循環,而不是終止整個循環。break 語句則是結束整個循環過程,不再判斷執行循環的條件是否成立。而且,continue 只能在循環語句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何語句中使用。

所以,再次強調:continue 不能在 switch 中使用,除非 switch 在循環體中。此時 continue 表示的也是結束循環體的本次循環,跟 switch 也沒有關系。

例如,下面為使用switch模擬電梯運行的代碼:
# include <stdio.h>
int main(void)
{
    int val;  //variable的縮寫, “變量”的意思
    printf("請輸入您想去的樓層:");
    while (1)
    {
        scanf("%d", &val);
        switch (val)
        {
        case 1:
            printf("1層開!\n");
            break;  //跳出switch
        case 2:
            printf("2層開!\n");
            break;  //跳出switch
        case 3:
            printf("3層開!\n");
            break;  //跳出switch
        default:
            printf("該層不存在, 請重新輸入:");
            continue;  //結束本次while循環
        }
        break;  //跳出while
    }
    return 0;
}
輸出結果是:
請輸入您想去的樓層:4
該層不存在, 請重新輸入:3
3層開!

此時在 default 中如果不使用 continue 的話,那么最后的“該層不存在,請重新輸入:”仍然不起作用。它雖然能輸出,但輸出之后直接就執行后面的 break 了,用戶仍然沒有重新輸入的機會。而加 continue 之后就會結束本次 while 循環,即后面的 break 語句本次就不會執行,而是直接進入 while 循環,這樣用戶就有“重新輸入”的機會了。

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo