前言

亲爱的代码建筑师们!上节课我们用if/else魔法杖学会了简单的路线选择,今天要获得更强大的工具——逻辑运算符!这些神奇的胶水能让你把多个条件组合起来,创建更智能的决策系统🚦。就像建造复杂机械需要的连接件一样重要!

回顾昨天学的

上节课我们掌握了:

  1. if基础条件判断(单一决策)
  2. else处理不满足条件的情况
  3. else if处理多条件分支
  4. 考试成绩评级系统实践

今天学什么

今天我们学习三种逻辑胶水:

  1. && 逻辑与 → 并且(两个条件都满足)
  2. || 逻辑或 → 或者(至少一个条件满足)
  3. ! 逻辑非 → 不是(条件取反)

今天要学的内容


🧩 第一部分:&& 逻辑与 - 必须同时满足

想象电影院入场规则:

let hasTicket = true;    // 有门票
let hasMask = true;      // 有口罩

if (hasTicket && hasMask) {
  console.log("欢迎入场!"); // 两个条件都为true时才执行
} else {
  console.log("无法入场");
}

🔍 核心概念:

  • 符号:&&(两个&符号连写)
  • 含义:并且 → 就像在说"既要...又要..."
  • 真值表:
条件A 条件B A && B
true true ✅ true
true false ❌ false
false true ❌ false
false false ❌ false

🛒 实际案例:购物车结算

let isLoggedIn = true;
let cartTotal = 500; // 购物车金额

// 既要登录又购物满200才能结算
if (isLoggedIn && cartTotal >= 200) {
  console.log("允许结算");
}

🎭 第二部分:|| 逻辑或 - 满足一个即可

想象餐厅折扣规则:

let isMember = false;     // 非会员
let isBirthday = true;    // 今天生日

if (isMember || isBirthday) {
  console.log("享受8折优惠!"); // 满足任意条件即可
} else {
  console.log("原价付款");
}

🔍 核心概念:

  • 符号:||(两个|符号连写,通常在回车键上方)
  • 含义:或者 → 就像在说"要么...要么...都可以"
  • 真值表:

| 条件A | 条件B | A || B |
|-------|-------|--------|
| true | true | ✅ true |
| true | false | ✅ true |
| false | true | ✅ true |
| false | false | ❌ false |

🏥 实用案例:紧急通道

let age = 70;
let isDisabled = true;

// 超过65岁或者残障人士可走特殊通道
if (age >= 65 || isDisabled) {
  console.log("请走紧急通道");
}

🔄 第三部分:! 逻辑非 - 条件取反

想象安全门禁系统:

let isAlarmActive = false; // 警报未触发

if (!isAlarmActive) {  // 相当于 if (false取反 → true)
  console.log("安全门保持开启");
} else {
  console.log("触发警报!安全门锁定");
}

🔍 核心概念:

  • 符号:!(感叹号,在数字1键左边)
  • 含义:非/反转 → 把布尔值反过来(true变false/false变true)
  • 真值表:
原值 !原值
true ❌ false
false ✅ true

💻 错误处理案例:

let isError = false;

// 当没有错误时提交数据
if (!isError) {
  console.log("开始提交数据...");
}

🔐 第四部分:组合应用 - 智能门票验证系统

结合三种运算符创建完整系统:

// 用户资料
const hasTicket = true;    // 有门票
const age = 15;            // 年龄
const withParent = true;   // 有家长陪同
const isVip = false;       // 非VIP

// 核心验证逻辑
if (!hasTicket) {
  console.log("❌ 无门票禁止入场");
} else if (age < 13 && !withParent) {
  console.log("❌ 13岁以下需家长陪同");
} else if (isVip || (age >= 18) || (age >= 13 && withParent)) {
  // VIP/成年/13-17岁有陪同 → 允许进入
  console.log("✅ 欢迎进入展览馆!");
} else {
  console.log("❌ 不满足入场条件");
}

🔄 执行流程分析:

  1. 检查无门票 → 立即拒绝
  2. 小于13岁且无家长 → 拒绝
  3. 三个条件满足任意一个:
    • VIP身份 → true优先通行
    • 年龄≥18 → true
    • 年龄≥13且有陪同 → true
      注:15岁且有陪同 → true

⚠️ 运算符优先级提醒:

  1. ! 最高优先级
  2. && 中等优先级
  3. || 最低优先级
    建议:用( )显式分组,避免歧义
// 有歧义写法
age >= 60 || isDisabled && !hasBag

// 清晰写法
(age >= 60) || (isDisabled && !hasBag)

明天学什么

第九课将进入魔法循环城堡:

  1. while 循环 → 当条件满足时重复执行
  2. for 循环 → 精确控制次数的循环
  3. 破解无限循环诅咒的方法
  4. 实战:创建倒计时器和数字金字塔

成长秘诀

"逻辑运算符如同思维桥梁,将简单布尔值连接成宏伟的判断网络,筑就程序智慧的基石"