计算机科学 4 第 15-18 关
NESTED LOOPS
🪐

认识嵌套循环

Nested Loops

🌀 外层循环
🔄 内层循环
📺

剧集比喻:季与集

嵌套循环就是:一个循环里面又套了另一个循环。

外层循环 (Outer): 就像动画片的“第 1 季、第 2 季...”。
内层循环 (Inner): 就像每一季里的“第 1 集、第 2 集...”。

每开始新的一季(外层跑一次),都要把那一季的所有集数看完(内层跑完),才能进入下一季。

Season 1
Episode 1
📐

基本结构 (Syntax)

while 外层条件:
  # 外层做的事
  while 内层条件:
    # 内层反复做的事
    do_something()

注意缩进 (Indentation)!
多缩进一层的代码,就属于里面的循环。

月亮(内)绕着地球,地球(外)绕着太阳
👻

任务一:打倒每个敌人

外层: 遍历敌人列表 (一个个点名)。
内层: 攻击当前敌人直到死。

while index < len(enemies):
  enemy = enemies[index]
  # 死磕到底!
  while enemy.health > 0:
    attack(enemy)
  index += 1
-10
💀
💎

任务二:靠近物品

外层: 遍历物品列表。
内层: 只要距离还远,就继续走。

while itemIndex < len(items):
  item = items[itemIndex]
  # 没走到就一直走
  while distanceTo(item) > 2:
    moveXY(item.pos.x, item.pos.y)
  itemIndex += 1
就像你在追一个泡泡,只要没抓到,就一直追。
🏃 ... 5m ... 3m ... 💎

Inner Loop: Distance > 2

🔍

条件嵌套:只打萨满

我们在循环里加一个 if,只处理特定类型的敌人。

外层:遍历所有
while i < len(enemies):
过滤:只选萨满
if enemy.type == "shaman":
内层:死磕
while enemy.health > 0:
  attack(enemy)
🐂
🧙‍♂️
🐂
TARGET LOCKED
✖️

嵌套循环 ≈ 乘法

如果有 3 个敌人,每个要打 4 下。

3 (外层) × 4 (内层)
= 12 次攻击

这就是为什么嵌套循环做事情特别多!要注意效率哦。

💀
🗡️🗡️🗡️🗡️
💀
🗡️🗡️🗡️🗡️
💀
🗡️🗡️🗡️🗡️
🎓

时空领主口诀

"大圈套小圈,层层往下钻。
缩进要看准,谁在谁里面。"
"外层管一个个,内层管到底。
变量要更新,否则死循环!"
🌌