计算机科学 3
第 7-8 关 ADVENTURE LOG
📜

练习 while 循环

Practice While Loops

🏜️ 海市蜃楼
🧪 菠菜力量
📚

多重任务:一章接一章

程序执行就像读书,读完第一章,才读第二章。

# 第一章:攒钱
while gold < 25:
  collectCoins()

# 第二章:买东西 (循环外)
hero.build("decoy")

# 第三章:挑衅
while health == max:
  say("Come on!")
1. 攒够 25 金币
⬇️
2. 建造诱饵
⬇️
3. 满血挑衅
💰

第一章:金币 < 25

条件:while hero.gold < 25:

意思是:“只要钱袋里的钱还不到 25,就继续捡。”

  • 🪙 24 < 25 ? ✅ 是的 (继续)
  • 💰 25 < 25 ? ❌ 不是 (停止)
"这就是不等式 inequality,左边小,右边大。"
💰
0 / 25
⚖️

第三章:相等 == 赋值 =

这是最容易搞混的地方!

= (赋值)
"把右边的给左边"
count = 0 (设定)
== (比较)
"问左右两边一样吗?"
health == max (提问)
🎁 vs ⚖️
送礼物 vs 称重量
🧪

菠菜力量:计数器

我们需要数数:喝了几瓶药水?

count = 0 # 初始
while count < 7:
  drinkPotion()
  count += 1 # 关键!

count += 1:自增 (Increment)。
每喝一瓶,就在本子上画一道杠。

Count: 0
⚠️

陷阱:差一错误

如果写成 while count <= 7 会怎样?

<= 7:第 7 瓶喝完,7 <= 7 成立,还会再喝第 8 瓶!(喝多了)

< 7:第 7 瓶时,7 < 7 不成立,停止。(刚刚好)

这叫 Off-by-one Error

🤢

喝了第 8 瓶...

🧪🧪🧪🧪🧪🧪🧪🧪
🔄

主循环:while True

有些任务是永远做下去的,比如战斗。

while True:
  enemy = findEnemy()
  if enemy:
    attack(enemy)

True 永远是真的,所以这个循环如果不被外力(如游戏结束)打断,会一直转下去。

⚔️
🎓

循环大师口诀

"< 25 小于号,条件不满继续跑。"
"+= 1 计数器,不加就会死循环!"
"== 是问号,= 是句号。"
🌟