循环
概念说明
循环用于重复执行一段代码,直到满足退出条件。
C 语言提供了 while、do while 和 for 三种常见循环结构,它们适合的场景略有不同。
大多数循环错误并不是语法写错,而是边界、更新时机和退出条件没有想清楚。 所以写循环时,最好先明确三件事:从哪里开始、什么时候结束、每轮怎么推进。
可以先这样理解:
while:先判断,再决定要不要执行。do while:先执行一次,再判断是否继续。for:把初始化、条件和更新写在同一处,更适合计数型循环。
语法/规则
while在进入循环体前先检查条件,因此可能一次也不执行。do while至少会执行一次循环体,因为判断发生在末尾。for (初始化; 条件; 更新)适合计数型或遍历型逻辑。break用于提前结束整个循环,continue用于跳过本轮剩余语句进入下一轮。- 嵌套循环时,要格外注意内外层变量名、边界和退出条件。
- 循环变量最好只由一个明确位置更新,避免“多处修改”带来的混乱。
- 写完循环后,最好手动检查首轮、末轮和空输入这三类边界情况。
示例
| |
输出结果:
| |
这个例子里,continue 跳过了所有偶数,只把 1 到 10 之间的奇数累加起来。
常见错误
- 循环变量没有更新,导致死循环。
- 边界条件写错,例如
i < n和i <= n混淆,产生 off-by-one 错误。 for或while后面误写一个分号,导致循环体变成空语句。- 在多个位置同时修改循环变量,最后连自己都说不清一轮到底怎么推进。
- 只测试“正常输入”,没有验证空数组、零次循环和最后一轮边界。