Namespaces
Variants

continue statement

From cppreference.net

导致跳过包围它的 for while do-while 循环体中剩余的部分。

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

目录

语法

attr-spec-seq (可选) continue ;
attr-spec-seq - (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 continue 语句 (p: 111)
  • C11 标准 (ISO/IEC 9899:2011):
  • 6.8.6.2 continue 语句 (p: 153)
  • C99 标准 (ISO/IEC 9899:1999):
  • 6.8.6.2 continue 语句 (p: 138)
  • C89/C90 标准 (ISO/IEC 9899:1990):
  • 3.6.6.2 continue 语句

参见

C++ 文档 关于 continue 语句