break 与 continue 路径模拟器

跳过本次,还是结束整个循环?观察控制流与变量状态的分野
D04-02 · 循环流程控制
“遇到异常数据时,程序应该跳过这一条,还是停止处理后面的所有数据?”
待处理数据队列 (固定测试集): (0与999: 无效; STOP: 结束标记)
控制流执行路径微观图 等待启动
No (正常) Yes (break) Yes (有效) No (continue)
① 读取数据 read(pulse)
② 是否为 STOP? pulse == STOP
③ 数据是否有效? 0 || 999 判定
④ 正常处理 sum += p; cnt++;
⑤ 本轮结束 下一项待读
continue 旁路回环 跳过累加,直接进入下一轮
break 彻底退出 终止循环,不再读取数据
数据处理历史演进表 记录每条数据经过的判断、触发动作与变量累计
轮次 输入 pulse 判断结果 触发控制动作 累计 sum 有效数 count
C 语言循环流程控制源码 单步同步高亮
1while (1) {
2    read(pulse);
3    if (pulse == STOP)
4        break;       // 遇到终止标记,立即结束整个循环
5    if (pulse == 0 || pulse == 999)
6        continue;    // 异常无效值,跳过本轮后续语句
7    sum += pulse;
8    count++;
9}
10// 循环已退出,执行后续语句
当前动作与控制状态 尚未开始
当前数据: -
本轮判断: -
本轮动作: -
点击“下一步”或“自动运行”,程序将从队列中读入第 1 个数据 72。
continue:
结束当前这一轮
跳过本轮后续代码,直接读取下一项。循环继续。
break:
结束整个 while 循环
彻底跨出循环体,后续所有数据均不再读取。
数据索引 index队列游标
-
当前读入 pulse输入值
-
累加和 sum实际有效和
0
有效计数 count处理个数
0
循环状态生命周期
等待开始
本轮操作对变量状态的影响 尚未执行
sum 变化 -
count 变化 -
循环流向 -
教学箴言:continue 管“这一轮”(跳过后续、继续下一轮),break 管“整个循环”(立即终止、不再读取)!