C++ 基础 3 第 26-31 关
🚫

不等于运算符 (!=)

Not Equal Operator

排除法
逻辑判断
👮‍♂️

排除检查官:!=

!= 就像一个挑剔的检查官,他在问:“这两个东西不一样吗?”

  • ✅ 如果不一样 → True (通过)
  • ❌ 如果一样 → False (拦截)
// 检查敌人类型 if (enemy.type != "burl") { // 如果不是巨人(burl),就攻击! hero.attack(enemy); }
"除了 Burl,其他的都可以打!"
👾
!= "burl"
TRUE
⚖️

双胞胎:== vs !=

它们就像一对性格相反的双胞胎。

==

相等运算符
问:一样吗?

"A" == "A" (True)
!=

不等于运算符
问:不同吗?

"A" != "B" (True)
// C++ 语法示例 if (10 != 5) { hero.say("它是不同的!"); }
👯
💎

实战:穿越 (Level 27)

在兽人村庄,只有宝石 (gem) 可以拿。

如果物品不是宝石,不要拿,跟着宠物走!

while(true) { auto item = hero.findNearestItem(); if(item) { // 如果类型不是 "gem" if(item.type != "gem") { // 它是诱饵!跟随宠物 hero.moveXY(pet.pos.x, pet.pos.y); } else { // 是宝石,拿走! hero.moveXY(item.pos.x, item.pos.y); } } }
🍗 🚫 💎 ✅
☠️

实战:有用的对手 (Level 28)

战场上有毒药,且不能打农民 (peon)。

while(true) { auto enemy = hero.findNearestEnemy(); if(enemy) { // 不是农民才攻击 if(enemy.type != "peon") { hero.attack(enemy); } } auto item = hero.findNearestItem(); if(item) { // 不是毒药才捡 if(item.type != "poison") { hero.moveXY(item.pos.x, item.pos.y); } } }
🧪 🙅‍♂️
🌲

实战:奇境 (Level 29)

树精 (Burl) 喜欢宝石。为了不惹怒它,我们只拿不是宝石的东西

while (true) { auto item = hero.findNearestItem(); if (item) { // 只要不是宝石,统统拿走! // 这样就不用写一堆 if item.type == "coin" ... if (item.type != "gem") { hero.moveXY(item.pos.x, item.pos.y); } } }
使用 != 可以大大简化代码!这叫“排除法”。
🍄 🪙 ✅
💎 ❌
🏰

综合实战:被诅咒的梦境

这里有两个规则:

  1. 物品:除了宝石,都捡。
  2. 敌人:除了树精 (burl),都打。
while (true) { auto item = hero.findNearestItem(); if (item) { if (item.type != "gem") { hero.moveXY(item.pos.x, item.pos.y); } } auto enemy = hero.findNearestEnemy(); if (enemy) { if (enemy.type != "burl") { hero.attack(enemy); } } }
🧞‍♂️
🎓

检查官口诀

"!= 问不同,不同才是真 (True)。"
"排除法思维好,
省时省力效率高!"
🏅