核心结论,c 语言 continue 作用是在循环内部,立刻跳过本次循环剩下还没有执行的代码,直接进入下一轮循环判断,它不会终止整个循环,只终止当前这一次迭代,原因是 continue 属于循环控制关键字,搭配 for while do while 三类循环使用,用来过滤不需要处理的数据,步骤是循环条件成立,执行循环体代码,遇到 continue,本次循环后续代码不再运行,直接跳转到循环增量或者条件判断位置,开启下一轮循环,结论,continue 适合数据过滤场景,要区分它和 break,break 是直接退出整个循环,continue 只是跳过本轮。
基础对比表格
| 关键字 | 执行效果 | 是否结束整个循环 |
|---|---|---|
| continue | 跳过本轮剩余代码,继续下一轮 | 否 |
| break | 直接跳出当前循环,循环彻底结束 | 是 |
深度内容讲解
第一 for 循环里面 continue 执行流程
for 循环里面碰到 continue 之后,会优先执行 for 括号里面的增量表达式,然后再做循环条件判断,这个是重点,很多初学者容易搞错,不是直接回到循环开头,而是先跑增量。
示例逻辑
for i 从 1 到 10
如果 i 是偶数,执行 continue
就不会执行后面打印语句,直接 i 自增,继续下一轮
第二 while 循环里面 continue 执行流程
while 循环遇到 continue,直接跳回 while 的条件判断位置,如果循环变量自增代码写在 continue 后面,会造成死循环,这个是经典坑点,写代码的时候要保证循环变量更新在 continue 之前。
第三 do while 循环里面 continue 执行流程
do while 碰到 continue,跳过本轮剩余代码,直接执行 while 后面的条件判断,满足条件继续下一轮。
第四 多层嵌套循环场景
continue 只作用于它所在的那一层循环,外层循环不受影响,不会直接跳到外层循环,这点和 goto 有区别。
第五 典型使用场景
筛选奇数偶数,过滤非法数据,满足特定条件的时候不需要执行后面业务逻辑,不需要写大量 if else 嵌套,让代码更加简洁。
代码示例
include
int main()
{
for(int i=1;i<=5;i++)
{
if(i==3)
{
continue;
}
printf("%d ",i);
}
return 0;
}
输出结果 1 2 4 5,i 等于 3 的时候被 continue 跳过,循环没有终止。
【常见问题】
问题 1 c 语言 continue 作用和 break 有什么不一样
回答 1 c 语言 continue 作用只是跳过当前这一轮循环剩余代码,循环还会继续,break 是直接退出整个循环,循环不再执行。
问题 2 c 语言 continue 作用会不会造成死循环
回答 1 c 语言 continue 作用本身不会造成死循环,但是 while 循环如果循环变量自增写在 continue 后面,跳回去之后变量永远不变,就会出现死循环。
问题 3 c 语言 continue 作用可以用在 switch 里面吗
回答 1 c 语言 continue 作用不能单独在 switch 里面生效,如果 switch 放在循环内部,continue 会作用外层循环,不是控制 switch 分支。
免责申明:本内容属于 C 语言语法科普,不同编译器语法标准基本一致,代码学习参考,实际项目编写请结合 C 标准规范。


