一句话概括
continue 的作用是:立即结束当前正在执行的本次循环,并直接跳转到循环的条件判断部分,准备开始下一次循环。

(图片来源网络,侵删)
核心要点
- 它只影响循环:
continue关键字只能在for、while、do-while循环内部使用,在循环外面使用会导致编译错误。 - “跳过”而非“终止”:
continue和break的最大区别在于:break:完全跳出整个循环,循环不再执行。continue:跳过本次循环剩余的代码,但循环本身还在继续,会执行下一次迭代。
- 流程控制:当程序执行到
continue时,它会立即中断当前循环体中continue语句之后的所有代码,然后根据循环的类型,直接跳转到循环的“头”部:- 在
for循环中,会跳转到“增量表达式” (i++) 部分,然后再判断循环条件。 - 在
while和do-while循环中,会跳转到“条件判断”部分。
- 在
代码示例
为了更好地理解,我们来看几个例子。
示例 1:在 for 循环中使用 continue
这个例子会打印 1 到 10 之间除了 5 以外的所有数字。
#include <stdio.h>
int main() {
for (int i = 1; i <= 10; i++) {
// i 等于 5,就执行 continue
if (i == 5) {
printf("跳过了数字 5\n");
continue; // 立即跳转到 i++,然后判断 i <= 10
}
// 这行代码在 i == 5 时不会被执行
printf("当前数字是: %d\n", i);
}
return 0;
}
执行流程分析:
i = 1,2,3,4:if条件为假,正常打印 "当前数字是: 1/2/3/4"。i = 5:if条件为真。- 打印 "跳过了数字 5"。
- 执行
continue。 - 立即跳转到
i++,i变成 6。 - 判断
i <= 10(6 <= 10),为真,继续循环。
i = 6,7,8,9,10:if条件为假,正常打印 "当前数字是: 6/7/8/9/10"。i = 11:i <= 10为假,循环结束。
输出结果:

(图片来源网络,侵删)
当前数字是: 1
当前数字是: 2
当前数字是: 3
当前数字是: 4
跳过了数字 5
当前数字是: 6
当前数字是: 7
当前数字是: 8
当前数字是: 9
当前数字是: 10
示例 2:在 while 循环中使用 continue
这个例子会读取用户输入,直到用户输入一个负数为止,但会忽略所有输入的 0。
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数(输入负数结束):");
while (scanf("%d", &num) == 1) { // 循环条件:成功读取一个整数
if (num == 0) {
printf("输入了 0,忽略不计,请继续输入:");
continue; // 立即跳转到 while 的条件判断部分
}
if (num < 0) {
printf("检测到负数,程序结束,\n");
break; // 使用 break 来完全退出循环
}
printf("你输入的正数是: %d\n", num);
printf("请继续输入:");
}
return 0;
}
执行流程分析:
- 用户输入
5。num是 5,不为 0。num不小于 0。- 打印 "你输入的正数是: 5"。
- 用户输入
0。num是 0。if (num == 0)为真。- 打印 "输入了 0,忽略不计..."。
- 执行
continue。 - 立即跳转到
while (scanf(...)),重新等待用户输入,continue之后的printf不会执行。
- 用户输入
-10。num是 -10。if (num == 0)为假。if (num < 0)为真。- 打印 "检测到负数,程序结束。"。
- 执行
break,整个while循环彻底终止。
continue vs break 对比表
| 特性 | continue |
break |
|---|---|---|
| 作用 | 跳过本次循环的剩余代码,进入下一次循环。 | 完全跳出整个循环。 |
| 影响范围 | 只影响当前所在的循环。 | 跳出当前所在的循环或 switch 语句。 |
| 使用位置 | 只能在循环 (for, while, do-while) 内部。 |
可以在循环 (for, while, do-while) 或 switch 语句内部使用。 |
| 比喻 | “这个任务不做了,下一个任务继续。” | “今天所有任务都不做了,收工!” |
continue 是 C 语言中一个非常有用的流程控制语句,它允许你有选择性地跳过循环体中的某些代码,从而让循环逻辑更清晰、更高效,当你遇到某个条件,不希望执行循环体中后续的操作,但又不想终止整个循环时,continue 就是最佳选择。

(图片来源网络,侵删)
