在编程中,我们经常需要同时检查多个条件。逻辑运算符让我们能够将多个条件组合在一起,避免复杂的嵌套 if 语句。
先看一个常见的嵌套条件写法:
嵌套的问题:
if 和 else&& 读作"与"或"而且",它的工作很简单:
想象一下银行取钱:
true && true = truetrue && false = false在处理变量之前,让我们先直接测试 && 运算符如何处理最基本的 true 和 false 值:
从布尔值到布尔变量:
还记得在变量赋值课程中我们学过的读取变量值的规则吗?
复习:如果变量不在赋值符号(
=)的左边,那就是在读取变量的值
在这个例子中,当执行 hasMoney && isNewModel 时:
hasMoney 不在 = 左边 → 读取它的值 trueisNewModel 不在 = 左边 → 读取它的值 truetrue && true这就是为什么我们在实际代码中使用 hasMoney && isNewModel,它本质上就是对两个变量中存储的布尔值进行 && 运算。
回到我们买手机的例子:
简化后的逻辑:
hasMoney && isNewModel 检查两个条件是否同时满足注意:使用 && 简化后,失去了原来的详细判断:
什么时候用 && 简化?
| 条件A | 条件B | A && B | 理解 |
|---|---|---|---|
| true | true | true | 两件事都满足 |
| true | false | false | 只有A满足 |
| false | true | false | 只有B满足 |
| false | false | false | 两件事都不满足 |
先看一个需要判断"或者"关系的嵌套条件写法:
嵌套的逻辑:如果是晴天,可以出门;如果不是晴天但有雨伞,也可以出门。
嵌套的问题:
if 和 else|| 读作"或"或者"或者",它的工作很简单:
想象一下去学校:
true || false = truefalse || false = false同样,让我们先理解 || 运算符如何处理基本的布尔值,再看它如何处理变量:
从布尔值到布尔变量:
同样运用变量赋值课程中的读取变量值规则:
理解过程:当执行 isSunny || hasUmbrella 时,程序会:
isSunny 的值 → truehasUmbrella 的值 → falsetrue || false → true回到出门准备的例子:
简化后的逻辑:
isSunny || hasUmbrella 检查是否有任何一个出门条件注意:使用 || 简化后,同样失去了原来的详细判断:
什么时候用 || 简化?
| 条件A | 条件B | A || B | 理解 |
|---|---|---|---|
| true | true | true | 两种方式都可以 |
| true | false | true | A方式就够了 |
| false | true | true | B方式就够了 |
| false | false | false | 两种方式都不行 |
我们知道 if (isVictory === true) 可以简化为 if (isVictory),那么 if (isVictory === false) 如何简化呢?
! 运算符就是用来简化 === false 比较的:
! 读作"非"或"不是",它的工作很简单:
想象一下电灯开关:
! 就是那个"切换"的按钮让我们先理解 ! 运算符如何处理基本的布尔值:
了解了 ! 运算符的基本功能后,现在我们来看看它如何解决 === false 的问题:
简化原理:通过看两种方式在 isVictory 为 true/false 情况下是否一样:
| isVictory 的值 | isVictory === false | !isVictory | 等价吗? |
|---|---|---|---|
| true | false | false | ✅ 等价 |
| false | true | true | ✅ 等价 |
从表格可以看出:!isVictory 完全等价于 isVictory === false
这就是为什么可以用 ! 来简化 === false 比较的原因。
1. 检查"没有"某样东西
2. 检查条件"不成立"
| 原值 | !原值 | 理解 |
|---|---|---|
| true | false | 真的变成假的 |
| false | true | 假的变成真的 |
当我们有多个条件需要同时满足时,就像数学中的加法可以连接多个数字一样,&& 也可以连接多个布尔值。
详细执行过程:以 true && true && false 为例
让我们用一个游戏角色的例子来理解三个条件的组合:
同样,|| 也可以连接多个条件,只要有一个满足即可。
执行分析:
理解了多个运算符的组合执行过程后,我们就能处理更复杂的条件判断逻辑了!
从高到低:
最佳实践:多用括号
推荐做法:使用中间变量
进阶做法:使用括号
今天我们学习了三种逻辑运算符,它们都能帮助我们简化条件判断:
&& (与运算符):所有条件都为 true 时,结果才为 true
if (a && b) 替代嵌套的 if (a) { if (b) { ... } }|| (或运算符):只要有一个条件为 true,结果就为 true
if (a || b) 替代复杂的 if-else 嵌套! (非运算符):将布尔值取反
if (!a) 替代 if (a === false)! > && > ||,建议使用括号明确顺序掌握这三个逻辑运算符后,你就能根据不同的需求,选择最合适的方式来表达条件判断逻辑,写出既简洁又清晰的代码!