
引言循环就像跑步想象你在操场上跑步绕着圈循环一直跑。break 就像你突然听到教练吹哨“停别跑了”——你立刻结束跑步离开操场。continue 就像你跑完一圈突然发现鞋带松了你暂停一下系好鞋带然后继续从下一圈开始跑——你并没有退出跑步只是跳过了“系鞋带”的那一小段。在C语言里break 和 continue 就是用来控制循环执行流程的两个关键字。它们让我们的程序更灵活能应对各种特殊情况。一、break 语句 —— “立即终止循环”作用用在 for、while、do...while 循环中。遇到 break立刻跳出当前整个循环循环后面的代码继续执行。也用在 switch 中这里不展开。生活类比你从1数到100但数到50时突然不想数了直接结束。代码示例#include stdio.h int main() { for (int i 1; i 10; i) { if (i 5) { break; // 当 i 等于 5 时循环戛然而止 } printf(%d , i); } printf(\n循环结束了\n); return 0; }输出1 2 3 4 循环结束了你看i 只打印到 4因为 i5 时 break 直接终止了整个 for 循环后面的 6~10 根本没机会执行。二、continue 语句 —— “跳过本次继续下一次”作用也只用在循环中。遇到 continue跳过本次循环中剩余的代码立即进入下一次循环的条件判断for 会先执行 增量 部分。生活类比你从1数到10但遇到数字5时你跳过它不数继续数6、7、8、9、10。代码示例#include stdio.h int main() { for (int i 1; i 10; i) { if (i 5) { continue; // 跳过 i5 这一次 } printf(%d , i); } printf(\n循环正常结束\n); return 0; }输出1 2 3 4 6 7 8 9 10 循环正常结束看到没5 被“跳过”了但循环并没有结束后面的 6~10 照常执行。三、break vs continue 一图流对比特性breakcontinue对循环的影响终止整个循环跳过本轮剩余语句继续下一轮循环是否继续不再继续继续若条件满足适用场景找到目标后提前退出某些值不需要处理时跳过是否影响外层循环只影响它所在的最内层循环只影响它所在的最内层循环四、进阶在嵌套循环中的表现break 只跳出一层for (int i 1; i 3; i) { for (int j 1; j 3; j) { if (i 2 j 2) { break; // 只跳出内层循环 } printf((%d,%d) , i, j); } printf(\n); }输出(1,1) (1,2) (1,3) (2,1) (3,1) (3,2) (3,3)当 (2,2) 时内层 for 被终止但外层继续。如果想跳出所有层可以用 goto 或标志变量但一般不建议。continue 也是只跳过内层的本轮for (int i 1; i 3; i) { for (int j 1; j 3; j) { if (i 2 j 2) { continue; } printf((%d,%d) , i, j); } printf(\n); }输出(1,1) (1,2) (1,3) (2,1) (2,3) (3,1) (3,2) (3,3)只跳过了 (2,2) 那一轮内层循环继续打印 (2,3)。五、使用注意事项新手避坑指南1.break 和 continue 只能在循环或 switch中使用如果写在 if 里但 if 不在循环内编译会报错。2.continue 在 while 和 do...while 中要小心增量比如int i 0; while (i 10) { if (i 5) continue; // 死循环因为 i 没有自增 i; }遇到 continue 跳过了 i导致 i 永远等于 5循环永不结束。解决将 i 放在 continue 之前或使用 for 循环增量在头部。3.break 只会跳出最近的一层循环不要幻想它能“一键退出所有嵌套”。4.不要滥用过多的 break/continue 会让代码逻辑混乱可读性下降。能不用就不用用之前想想有没有更清晰的写法。六、实际应用场景break查找数组中是否存在某个元素找到后立刻停止遍历提高效率。continue处理数据时过滤掉无效值如负数、空值只处理有效数据。// 示例打印 1~10 中的所有奇数跳过偶数 for (int i 1; i 10; i) { if (i % 2 0) continue; printf(%d , i); } // 输出1 3 5 7 9// 示例从 1 开始累加直到和超过 100 就停止 int sum 0; for (int i 1; ; i) { // 无限循环 sum i; if (sum 100) break; } printf(sum %d\n, sum);七、总结一句话break “我不干了直接走人”终止循环continue “这次算了下次继续”跳过本轮记住这个口诀break 是分手彻底结束continue 是冷战本轮跳过。如果你觉得有帮助欢迎点赞、收藏、评论让更多人看到