第五章——循环结构 第二节——For语句及其延伸
🌟 for循环:循环世界的「时间管理大师」
1.1 基本语法与执行逻辑
1 | for([变量初值];[循环继续条件];[循环变量增值]) |
执行流程图:
(1)求解“变量赋初值”表达式。
(2)求解“循环继续条件”表达式。如果其值非0,执行(3);否则,转至(4)。
(3)执行循环体语句组,并求解“循环变量增值”表达式,然后转向(2)。
(4)执行for语句的下一条语句。
for循环等价于
1 | 表达式1; |
1.2 案例:快递分拣员的终极考验
场景:快递员需要分拣1到100号包裹,但遇到编号是质数的包裹时必须单独检查。
1 |
|
关键点:
- 双重循环:外层控制包裹编号,内层判断是否为质数。
- break跳转:发现非质数立即跳出内层循环,提升效率。
🚀 for循环的高级用法:多变量控制的艺术*
2.1 案例:植物大战僵尸的「循环战术」
场景:僵尸按行进攻,每行有5个僵尸,需逐个消灭并统计剩余僵尸数量。
1 |
|
输出示例:
1 | 第1波进攻! |
2.2 案例:时间沙漏的逆向计时
场景:模拟火箭发射倒计时(从10到1),并在结束后输出“发射成功!”。
1 |
|
⚠️ 常见错误与避坑指南
| 错误类型 | 错误代码 | 修复方法 |
|---|---|---|
| 死循环 | for(;;) { ... } |
添加 break 或更新条件变量 |
| 变量作用域错误 | for(int i=0; i<10; i++) |
避免在循环外使用循环变量 |
| 表达式逻辑错误 | for(i=0; i=10; i++) |
使用比较运算符而非赋值 |
🧠 真题实战:理解for循环的本质
4.1 真题1:变量作用域陷阱
题目:以下代码输出什么?
1 |
|
解析:
for后的分号导致循环体为空,i从0递增到5后终止循环。printf输出i=5。
4.2 真题2:表达式省略的陷阱
题目:以下代码输出什么?
1 |
|
解析:
- 初始化和更新表达式被省略,需在循环体内手动更新
i。 - 输出
0 1 2。
🎯 总结:for循环的哲学
- 选for:当循环次数明确(如遍历数组、固定次数操作)或需要结构化控制时。
- 适用场景:已知边界条件、多变量控制、图形生成、算法实现(如排序、查找)。
🎯 记忆口诀:
「次数明确用for,结构紧凑控变量」
就像人生选择——精确计划用for,动态调整用其他结构!
几条算是比较正式的说明
- 当循环体语句组仅由一条语句构成时,可以不使用复合语句形式(即可以不使用
{ })
1 |
|
- “循环变量赋初值”表达式,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)。
1 | 例: |
- “循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。
1 | 例: |
几个考点
- 变量赋初值表达式可以省略,但后面的分号不能省略,此时应在for语句之前给循环变量赋初值。
- 如果省略循环继续条件,表示条件始终为真,循环将无终止。(又进入了死循环啊喂)
- 如果省略变量赋初值表达式和循环变量增值表达式,此时完全等价于while语句。
- for语句的循环语句可以是空语句,用来实现延时,但是后面的分号不能省略。
- 标题: 第五章——循环结构 第二节——For语句及其延伸
- 作者: 亓翎_Re-Tikara
- 创建于 : 2026-02-07 02:21:28
- 更新于 : 2026-02-10 02:48:46
- 链接: https://re-tikara.fun/Blog/posts/1b6c06df/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。