continue语句

来自cppreference.com
< c‎ | language

导致跳过整个 forwhiledo-while 循环体的剩余部分。

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

语法

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

解释

continue 语句导致如同用 goto 跳转到循环体的结尾(它仅能出现在 forwhiledo-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 (第 111 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 6.8.6.2 The continue statement (第 153 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 6.8.6.2 The continue statement (第 138 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 3.6.6.2 The continue statement

参阅