# continue语句

< c‎ | language

导致跳过整个 for、 while 或 do-while 循环体的剩余部分。

在使用条件语句忽略循环剩余部分显得笨拙时使用。

### 语法

属性说明符序列(可选) `continue` `;` |  |

属性说明符序列 | - | (C23)可选的属性列表，应用到 `continue` 语句

### 解释

`continue` 语句导致如同用 goto 跳转到循环体的结尾（它仅能出现在 for、 while 及 do-while 的循环体内）。

对于 while 循环，它表现为

    while (/* ... */) {
       // ...
       continue; // 表现为 goto contin;
       // ...
       contin:;
    }

对于 do-while 循环，它表现为：

    do {
        // ...
        continue; // 表现为 goto contin;
        // ...
        contin:;
    } while (/* ... */);

对于 for 循环，它表现为：

    for (/* ... */) {
        // ...
        continue; // 表现为 goto contin;
        // ...
        contin:;
    }

### 关键词

`continue`

### 示例

    #include <stdio.h>

    int main(void)
    {
        for (int i = 0; i < 10; i++) {
            if (i != 5) continue;
            printf("%d ", i);             // 每次 i != 5 时跳过此语句
        }

        printf("\n");

        for (int j = 0; j < 2; j++) {
            for (int k = 0; k < 5; k++) { // 只有此循环受 continue 影响
                if (k == 3) continue;
                printf("%d%d ", j, k);    // 每次 k == 3 时跳过此语句
            }
        }
    }

输出：

    5
    00 01 02 04 10 11 12 14

### 引用

- C17 标准（ISO/IEC 9899:2018）：

  - 6.8.6.2 The continue statement (p: 111)

- C11 标准（ISO/IEC 9899:2011）：

  - 6.8.6.2 The continue statement (p: 153)

- C99 标准（ISO/IEC 9899:1999）：

  - 6.8.6.2 The continue statement (p: 138)

- C89/C90 标准（ISO/IEC 9899:1990）：

  - 3.6.6.2 The continue statement

### 参阅