continue 的作用是立即结束当前这次循环迭代,并直接跳转到下一次循环迭代的开始处。

(图片来源网络,侵删)
详细解释
你可以把 continue 想象成在循环中说:“这次算了,跳过,直接开始下一次吧!”
它只会在 for、while、do-while 这三种循环结构内部使用。
continue 的工作流程
- 当程序执行到循环体内的
continue语句时。 - 程序会立即停止执行
continue语句之后的所有代码。 - 程序的控制权会直接跳转到循环的“更新”部分(对于
for循环)或者“条件判断”部分(对于while和do-while循环)。 - 如果循环条件仍然为真,则开始下一次迭代。
continue 在不同循环中的具体行为
在 for 循环中
在 for 循环中,continue 会跳过循环体中剩余的代码,然后直接执行for 循环的第三个表达式(增量/更新表达式),接着判断循环条件。
语法结构:

(图片来源网络,侵删)
for (初始化; 条件; 更新) {
// 循环体代码...
if (某个条件) {
continue; // 跳到这里,直接执行 "更新" 部分
}
// continue 被执行,这里的代码就不会被执行
// ...
}
在 while 循环中
在 while 循环中,continue 会跳过循环体中剩余的代码,然后直接跳回while 的条件判断部分。
语法结构:
while (条件) {
// 循环体代码...
if (某个条件) {
continue; // 跳到这里,直接判断 "条件"
}
// continue 被执行,这里的代码就不会被执行
// ...
}
在 do-while 循环中
在 do-while 循环中,continue 的行为与 while 类似,它会跳过剩余代码,然后直接跳回while 的条件判断部分。
语法结构:

(图片来源网络,侵删)
do {
// 循环体代码...
if (某个条件) {
continue; // 跳到这里,直接判断 "条件"
}
// continue 被执行,这里的代码就不会被执行
// ...
} while (条件);
代码示例
通过例子可以更清晰地理解 continue 的作用。
示例1:跳过偶数
打印 1 到 10 之间的所有奇数。
#include <stdio.h>
int main() {
printf("打印 1 到 10 之间的奇数:\n");
for (int i = 1; i <= 10; i++) {
// i 是偶数 (即 i % 2 == 0)
if (i % 2 == 0) {
continue; // 跳过本次循环的剩余部分,直接进入下一次循环
}
// 只有当 i 是奇数时,这行代码才会被执行
printf("%d\n", i);
}
return 0;
}
执行过程分析:
i = 1:1 % 2 != 0,if条件不成立,不执行continue,打印1。i = 2:2 % 2 == 0,if条件成立,执行continue。跳过printf,直接执行i++。i = 3:3 % 2 != 0,if条件不成立,不执行continue,打印3。- ... 以此类推,直到
i = 10。
输出结果:
打印 1 到 10 之间的奇数:
1
3
5
7
9
continue 与 break 的关键区别
初学者很容易混淆 continue 和 break,它们虽然都能改变正常的执行流程,但效果完全不同。
| 特性 | continue |
break |
|---|---|---|
| 作用 | 结束本次循环迭代,继续下一次迭代。 | 完全跳出整个循环,循环终止。 |
| 位置 | 只在循环体内使用。 | 在 switch 语句和循环体内使用。 |
| 比喻 | “这次作业不做了,做下一题。” | “整个考试不考了,我要交卷走人。” |
对比示例:
#include <stdio.h>
int main() {
printf("--- 使用 continue ---\n");
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // 当 i=3 时,跳过本次循环
}
printf("continue: i = %d\n", i);
}
printf("\n--- 使用 break ---\n");
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break; // 当 i=3 时,跳出整个循环
}
printf("break: i = %d\n", i);
}
return 0;
}
输出结果:
--- 使用 continue ---
continue: i = 1
continue: i = 2
continue: i = 4
continue: i = 5
--- 使用 break ---
break: i = 1
break: i = 2
从结果可以看出,continue 只是跳过了 i=3 的那次打印,而 break 则在 i=3 时彻底终止了循环。
continue用于跳过循环体中剩余的代码,直接开始下一次迭代。- 它是控制流程的工具,常用于根据特定条件来过滤或处理循环中的数据。
- 一定要分清
continue(继续下一次)和break(完全跳出)的区别,这是写出正确逻辑的关键。
