
一起动脑筋 · 先看一个小故事
女孩想让机器人敲三次鼓。写三遍能做到,但敲一百次时怎么办?
把过程摊开来看
- 第 1 次敲鼓
- 第 2 次敲鼓
- 第 3 次敲鼓
- 停止次数已经足够
循环让一组动作按条件重复执行。
数清次数时,要分别看初始值、继续条件和每轮的更新。对从 1 到 3 的计数,1、2、3 都各执行一次。
01为什么需要循环?
如果要输出 1 到 100,当然可以写 100 行 cout,但这既麻烦又容易出错。
循环让我们用一小段代码表达“重复做”。
02第一个 for 循环
for (int i = 1; i <= 3; i++) {
std::cout << i << '\n';
}
输出:
1
2
3
03for 的三部分分别做什么?
int i = 1
初始化,只在进入循环时执行一次。
i <= 3
继续条件,每轮开始前检查。
i++
每轮循环体结束后执行更新。
04for 到底怎样一轮轮执行?
初始化 i = 1↓检查 i <= 3↓执行循环体↓执行 i++↺再次检查条件
条件变成 false 后,循环结束,程序继续执行循环后面的代码。
05i++ 是什么意思?
i++ 会让 i 增加 1。对这个例子来说,可以暂时把它理解为每轮结束后让计数器前进一格。
更准确地说,++ 是自增运算符,前置和后置形式在更复杂表达式中还有区别,初学时不要把复杂写法塞进同一表达式。
06for 只能从 1 数到某个数吗?
不是。for 的三个部分都可以根据任务设计:
for (int i = 10; i >= 0; i -= 2) {
std::cout << i << ' ';
}
它会输出 10、8、6、4、2、0。
07什么是死循环?
如果条件一直保持 true,循环就可能永远无法正常结束。
for (int i = 1; i > 0; i++) {
// ...
}
不过这个具体例子还涉及整数范围,因此不适合作为“可靠的无限循环”写法。明确需要无限循环时,常写:
for (;;) {
// ...
}
你已经知道了什么
- for 循环用来表达重复执行。
- for 常包含初始化、继续条件和更新三个部分。
- 每轮循环前会判断条件。
- 循环体执行后再执行更新部分。
- for 不只用于简单计数,也能表达其他规则。
下一篇:while:不知道要重复多少次怎么办?
轮到你来试一试
从 i = 1 开始,只在 i < 3 时敲鼓,每轮 i 加 1,会敲几次?
想好了吗?点开看解释
两次,对应 i 为 1 和 2。i 到 3 时条件已经是假。边界符号会改变次数。