1. 程式人生 > >C語言關鍵字淺析-break

C語言關鍵字淺析-break

### C語言關鍵字淺析系列 ###

### ISO/ANSI C 關鍵字 ###

break關鍵字算是最常用的關鍵字之一了

常見於程式的迴圈結構和選擇結構中

 

break的作用是:

結束當前迴圈並跳出本層迴圈體。

 

1、迴圈結構中的break

迴圈結構中的break經常結合帶if的選擇結構一起使用

#include <stdio.h>

int main(void)
{
    int i;
    int sum;

    /* 定義一個數組,這種初始化方式只有ANSI C支援 */
    int a[10] = {1,4,2,3,6,5,3,6,2,9};

    /* for迴圈中的break,這個例子是陣列的查詢 */
    for(i = 0; i < 10; i++)
    {
        if(a[i] == 6)
        {
            printf("6 is found.\n");
            break;   /* 找到6,可以退出迴圈 */
        }
        else
        {
            printf("Continue to search 6\n");
        }
    }

    /* while或do-while迴圈中的break,這個例子是滿載限制 */
    sum = 0;
    i = 0;
    while(sum < 20)
    {
        if(a[i] < 0)
        {
            break;   /* 運算元不合法時可退出迴圈 */
        }
        sum += a[i++];
    }
    printf("Sum is %d", sum);

    return 0;
}

2、巢狀迴圈中的break

巢狀結構中的break一次只往外跳出一層巢狀

#include <stdio.h>

int main(void)
{
    int i, j, flag;
    flag = 0;

    /* 定義一個10*10的陣列並用函式初始化 */
    int a[10][10];
    init();

    /*
        定義:如果一個數據矩陣的一行中有一個負數,那該行無效
        下面的迴圈語句的作用是找有多少行無效
    */
    for(i = 0;i < 10; i++)
    {
        for(j = 0; j < 10; j++)
        {
            if(a[i][j] < 0)
            {
                flag++;
                break;   /* break一次只往上跳出一層巢狀的迴圈結構 */
            }
        }
    }

    return 0;
}

3、switch選擇語句中的break

根據switch語句的特性,如果每一個case後的語句沒有break,那程式將繼續進行下去

當然這個特性有時候會有巧妙的運用

char judgeGrade(char level)
{
    /* 通過成績等級制判斷招聘人員資料的稽核歸類 */
    char x;
    switch(level)
    {
        case 'A':
        case 'B':
        case 'C':x = 'T';   /* T 通過 */
                 break;
        case 'D':x = 'W';   /* W 等待討論 */
                 break;
        default:x = 'P';    /* P 不通過 */
    }
}

 

——參考《C Primer Plus第五版》

 

相關文章:

【continue關鍵字】

https://blog.csdn.net/Johan_Joe_King/article/details/83615137