C++ 基础 3 第 32-37 关
LOGIC STATUS
🔀

逻辑运算符 OR (||)

Logical Operator OR

[Image of logical OR gate symbol]
🛤️ 多条通路
💡 灵活判断
🔌

什么是 "OR" (||)?

在 C++ 中,OR 写作 ||

它就像一个并联电路,只要其中一条路通了,结果就是真 (True)。

  • ✅ True || False = True
  • ✅ False || True = True
  • ✅ True || True = True
  • ❌ False || False = False
"只要有一个条件满足,就算通过!"
[Image of parallel circuit diagram]
OFF
OFF
💡
💎

实战:宝石或者死亡

通过修改数学表达式,控制 if 语句的执行。

我们只想要执行那些能拿到宝石的代码块。

// 1. 这个条件是真的 (2+2=4),会执行 if (2 + 2 == 4) { hero.say("Hey!"); } // 2. 修改这里,让它变成 false (不要执行!) // 原本是 2 + 2 == 4 if (2 + 2 == 5) { hero.moveXY(10, 10); // 这是陷阱! }
💀 🆚 💎

True = 行动
False = 忽略

🤔

Burl 和布尔值 (Boolean)

布尔值 只有两种:true (真) 和 false (假)。

== 运算符的结果就是一个布尔值。

int main() { // 问题: 2 == 3 吗? hero.say(false); // 问题: 3 == 3 吗? hero.say(true); // 问题: "Three" == 3 吗?(文字 != 数字) hero.say(false); }
✅ ❌
⚔️

实战:盐碱地 (Salted Earth)

我们要攻击小怪 或者 投手。

while(true) { auto enemy = hero.findNearestEnemy(); // 只要满足其中一个类型,就攻击 if(enemy.type == "munchkin" || enemy.type == "thrower") { hero.attack(enemy); } auto item = hero.findNearestItem(); // 收集金币 或者 宝石 if(item.type == "coin" || item.type == "gem") { hero.moveXY(item.pos.x, item.pos.y); } }
👾 / 🥎

Munchkin OR Thrower

🌠

混合条件:流星雨

有时候,条件不只是类型,还可以是距离。

规则:只要是宝石,或者距离很近的东西,都捡起来!

while (true) { auto item = hero.findNearestItem(); float dist = hero.distanceTo(item); // 是宝石?(拿!) 或者 距离小于20米?(拿!) if (item.type == "gem" || dist < 20) { hero.moveXY(item.pos.x, item.pos.y); } }
💎 || 📏
🌲

综合练习:森林影子

综合运用 || 来筛选敌人和物品。

while (true) { auto enemy = hero.findNearestEnemy(); if (enemy) { // 攻击 munchkin 或 thrower if (enemy.type == "thrower" || enemy.type == "munchkin") { hero.attack(enemy); } } auto item = hero.findNearestItem(); if (item) { // 收集 gem 或 coin if (item.type == "gem" || item.type == "coin") { hero.moveXY(item.pos.x, item.pos.y); } } }
🕵️‍♂️
📜

逻辑大师口诀

"|| (OR) 是多选一,
只要一个对,大门就打开!"
"False || False = False
其他情况全为 True"
🏅