C++ 基础 3 第 1-6 关
THE BOOK OF LOOPS
🌀

认识 while 循环

The Magic of Loops

🏃 一直跑
🛑 直到停
🚪

什么是 while 循环?

while 就像一个严格的门卫。

每次你想进游乐场玩(执行代码),门卫都会问:
"你还符合条件吗?"

  • True (符合):进去玩一圈,回来再检查。
  • False (不符合):不让进了,循环结束。
👮‍♂️ 门卫 (Condition)
⬇️ True
🎢 游乐场 (Do Something)
(玩完一圈回到门卫处)
📝

基本语法 (Syntax)

while (条件) { // 只要条件是 True // 就一直做这里的事情 做动作(); }
"当(while)这件事没做完,就一直做。"

注意: C++ 中条件要用括号 () 包围,代码块用大括号 {} 包围。

Condition
Checking...
🔢

关卡 1:数数 (Counting)

我们用一个变量来数数:打了几下?

int attacks = 0; while (attacks < 10) { hero.attack(enemy); // 这步最关键! attacks += 1; }
attacks += 1:每打一次,就在本子上画一笔。不画的话,永远数不到10!
记事本
💰

关卡 2:属性做条件

除了自己定义的变量,也可以用英雄的属性

// 钱不够30就一直捡 while (hero.gold < 30) { auto item = hero.findNearestItem(); if (item) { hero.moveXY(item.pos.x, item.pos.y); } }
"就像妈妈说:零花钱不到30块,就多做家务!"
👛
Gold < 30 ?
🪙 🏃
🐂

关卡 3:只要还在 (Object)

判断东西是否存在,也是 True/False。

// 初始检查 auto yak = hero.findNearestEnemy(); while (yak) { hero.moveXY(item.pos.x, item.pos.y); // 重要:在循环里必须更新 yak! yak = hero.findNearestEnemy(); }

注意:必须在循环里更新变量!

如果不更新,电脑以为 yak 永远在,就会陷入死循环。

👀 看着牦牛
⬇️
捡金币
⬇️
再看一眼牦牛还在吗?
❤️

关卡 4:安全第一

用生命值作为停止条件。

while (hero.health > 200) { // 健康就跑步 hero.moveXY(48, 24); hero.moveXY(16, 24); } // 累了(血少)就停下 hero.moveXY(32, 40);
"当心率小于150时继续跑,太累了就停下来。"
Current > 200 ?
⚠️

关卡 5:死循环 (Infinite Loop)

如果条件永远是 True,循环就永远不会停!

int count = 0; while (count < 5) { hero.say("Hello"); // 😱 忘了 count += 1 }

电脑会一直喊 Hello 到宇宙毁灭...

千万别忘了改变条件变量!

😵‍💫
永远停不下来!
📦

关卡 6:打包循环

把复杂的 while 循环装进函数里,变成一个强力技能!

void collectUntil(int goldAmount) { while (hero.gold < goldAmount) { auto coin = hero.findNearestItem(); if (coin) { hero.moveXY(coin.pos.x, coin.pos.y); } } } int main() { collectUntil(25); // 一句话搞定! hero.buildXY("decoy", 40, 52); return 0; }

这就叫抽象 (Abstraction):把复杂过程藏起来,留一个简单按钮。

🎛️
一键收集
📝

循环四步口诀

  1. 🎯 定目标 (我要数到10)
  2. 👮 设条件 (while count < 10)
  3. 🔨 做事情 (hero.attack)
  4. 🔄 变数据 (count += 1)
"忘了第四步,电脑会迷路!"
🎓