🔷 第五章 循环语句
📄 一句话概括

循环跑起来之后,谁有权改它的命运?四条路:控制变量(方向盘,决定走几圈)、break(断电开关,整个循环结束)、continue(跳过本轮、循环还活着)、goto(任意跳,想跳哪跳哪)。日常 95% 的活儿只用前两个;goto 认得就行。

📝 本节和前面几节的关系

5.1~5.2 解决"循环怎么搭",本节解决"循环怎么控"——控制条件仍是 bool 表达式(3.1.3),break 在 4.4 的 switch 里已露过面(跳出的语义同款)。本节四篇:先讲方向盘(5.3.1),再讲两个中途开关(5.3.2/5.3.3),最后认一认"别多用"的 goto(5.3.4)。

一、四个手段,一张分工表

手段 一句话 改变什么 常见度
控制变量 方向盘 圈数与走向(改它 = 改条件) 天天用
break 断电开关 整个循环立即结束 常用
continue 跳过本轮 本圈剩下的不跑,回判/更新,循环继续 偶尔
goto 任意跳 跳到标签处,无结构可言 认得就行

一个心智模型:循环是一圈圈的赛道——控制变量决定还要不要跑下一圈;break 把赛道断电直接收工;continue 只废掉当前一圈;goto 是直接飞出场外,落点自己标。

30 秒实验:先立个基准——for (int i = 1; i <= 10; i++) cout << i << " "; 输出 1..10。接下来三篇会往这个循环里塞 break、continue,看输出怎么变。

二、常见误区

  1. "break 和 continue 差不多"——一个是收工,一个是本圈告假;差一个字,整个循环的命运不同(5.3.3 有对照实验)。
  2. "goto 很灵活,值得学"——灵活是它的原罪:跳来跳去的代码叫"面条代码",没人敢改。结构化编程(顺序/分支/循环)就是为了替代 goto 而生的。
  3. "控制手段越多越强"——每加一个控制手段,读者要跟踪一条新路径;能用条件表达的别用 break,能用 break 的别用 goto。
自测三问(点开对答案) 1. break 和 continue 的本质区别?——break 结束整个循环;continue 只跳过本轮剩余语句,循环继续。 2. 四个手段里哪个几乎不该用?——goto;结构化三件套(顺序/分支/循环)已覆盖它的用途。 3. "改控制变量"改的是什么?——继续条件的输入:圈数与走向随它变。

相关笔记