计算机科学 3 第 32-37 关
LOGIC STATUS
🔀

逻辑运算符 or

多重选择专家

🛤️ 多条通路
💡 灵活判断
🤷‍♂️

什么是 "or" (逻辑或)?

or 就像一个“多重选择器”。
它问:“这些条件里,至少有一个是成立的吗?”

  • 🍎 苹果 or 🍌 香蕉?
  • 只要有其中一样,我就开心!
if type == "munchkin" or type == "thrower":
  attack()
"是小怪?打!是投手?也打!只要满足一个就动手!"
🍎
OR
🍌
=
😋
🔌

并联电路原理

or 想象成并联电路中的开关。

只要任何一条路通了,灯泡就会亮!

  • ✅ 开关A 开 + 开关B 关 = 💡 亮 (True)
  • ✅ 开关A 关 + 开关B 开 = 💡 亮 (True)
  • ✅ 开关A 开 + 开关B 开 = 💡 亮 (True)
  • ❌ 开关A 关 + 开关B 关 = 🌑 灭 (False)
OFF
OFF
💡
🆚

or 哥哥 vs and 弟弟

🛣️
OR (或者)
"条条大路通罗马"
任意一条通就行
🚧
AND (并且)
"过五关斩六将"
必须全通才行
📡

程序:双重目标攻击

我们的英雄要同时监视两种敌人。

while True:
  enemy = findNearestEnemy()
  if enemy:
    # 只要满足其一,就攻击
    if enemy.type == "munchkin" or enemy.type == "thrower":
      attack(enemy)

保安接到命令:“看到穿红衣的或者戴黑帽的,都要检查!”

TARGETS: 2
🔢

谁先谁后?(优先级)

编程里的运算顺序像数学里的“先乘除后加减”。

优先级:
== / != (比较) > and / or (逻辑)
if type == "A" or type == "B":
# 先算 ==,再算 or。

💡 小贴士: 拿不准的时候,用括号 () 把条件包起来,绝对没错!

1. ( )
⬇️
2. == != > <
⬇️
3. and or
🎒

更多应用场景

1. 收集多种宝物:

if item.type == "coin" or item.type == "gem":
  moveXY(item.pos.x, item.pos.y)

2. 和朋友聊天:

if type == "peasant" or type == "archer":
  say("你好!")
💰
💎
👨‍🌾
🏹
🛡️

安全检查 (Safety Check)

如果 enemy 不存在,直接问 enemy.type 会报错!

# ❌ 危险写法
if enemy.type == "munchkin" ...
# ✅ 安全写法
if enemy and (enemy.type == "A" or ...):

先确定“有人”,再问“你是谁”。

👻

Error: enemy is null

🎓

逻辑大师口诀

"or 是多选一,
只要一个对,大门就打开!"
"复杂条件用括号 ()
先查存在保平安!"
🏅