ZetCode

C continue

最后修改于 2023 年 1 月 9 日

C continue 教程展示了如何在 C 语言的 do、for 或 while 语句中跳过迭代。

continue 语句

continue 语句将控制权传递给最内层的 do、for 或 while 语句的下一次迭代。它会跳过 do、for 或 while 语句体中任何剩余的语句。

break 语句不同,它不会终止整个循环。

C continue 示例

在下面的示例中,我们使用 continue 语句跳过将两个值加到总和中。

simple.c
#include <stdio.h>

int main() {

    int sum = 0;

    for (int i=1; i < 20; i++) {

        if (i == 7 || i == 13) {
            continue;
        }

        sum += i;
    }

    printf("%d\n", sum);
}

在示例中,我们计算 1..20 的总和,跳过 7 和 13。

if (i == 7 || i == 13) {
    continue;
}

如果 i 等于 7 或 13,我们调用 continue。它会结束当前周期并继续下一个周期。有效地,我们跳过了 sum += i; 语句。

$ ./simple
170

C continue 示例 II

在下一个示例中,我们使用 continue 来打印奇数。奇数是不能被精确地分成两对的整数。

odds.c
#include <stdio.h>

int main() {

    int i = 0;

    while (i < 100) {

        i++;

        if (i % 2 == 0) {
            continue;
        }

        printf("%d ", i);
    }

    puts("\n");
}

我们使用 while 循环迭代 1..999 的数字。

如果表达式 i % 2 返回 0,则该数字可以被 2 整除。执行 continue 语句,并跳过周期的其余部分。在我们的例子中,printf 函数被跳过,数字不会打印到控制台。然后开始下一次迭代。

$ ./odds 
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 
55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99

在本文中,我们介绍了 C continue 语句。