女孩和机器人一起思考

一起动脑筋 · 先看一个小故事

女孩想让机器人敲三次鼓。写三遍能做到,但敲一百次时怎么办?

把过程摊开来看

沿着编号看一遍,再用自己的话讲一遍
  1. 第 1 次敲鼓
  2. 第 2 次敲鼓
  3. 第 3 次敲鼓
  4. 停止次数已经足够

循环让一组动作按条件重复执行。

数清次数时,要分别看初始值、继续条件和每轮的更新。对从 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 时条件已经是假。边界符号会改变次数。