你有没有想过,为什么手机闹钟能在设定的时间准时响起?或者为什么APP会根据你的点击行为弹出不同的页面?这些看似复杂的操作,背后其实都离不开一种基础的思维方式——逻辑运算。
从电灯开关说起
想象你家客厅有两盏灯,一盏是主灯,一盏是装饰灯。你想控制它们的开关状态:
如果只有主灯开着,你觉得屋里够亮吗?可能不够。但如果两盏灯都开着,那就明亮多了。这种“两个条件同时满足才成立”的想法,就是逻辑运算中的“与”(AND)。
“与”运算:全都要满足
在程序里,“与”通常用 && 表示。比如你想判断一个人能不能进游乐场:必须“年龄大于12岁”并且“身高超过1.4米”。两个条件都得成立才行。
if (age > 12 && height > 1.4) {
console.log("可以进入");
}
就像你要同时按下两个开关,灯才会亮。
“或”运算:满足一个就行
再来看另一种情况。你去电影院买票,优惠条件是:“学生”或者“60岁以上老人”。只要满足其中一个,就能打折。
这就是“或”(OR),在代码中用 || 表示。
if (isStudent == true || isSenior == true) {
price = price * 0.8;
}
好比你有两个开关并联,按下一个,灯就能亮。
“非”运算:反过来想
“非”(NOT)是最简单的,就是取反。比如系统检测到“用户未登录”,就提示去登录。
这里的“未登录”其实就是对“已登录”取反,用 ! 表示。
if (!isLoggedIn) {
alert("请先登录");
}
就像开关按一下开,再按一下关,它是对当前状态的翻转。
组合起来更强大
实际应用中,这些运算常常组合使用。比如一个视频播放器要决定是否自动播放:
- 用户已经点了“允许自动播放”(设置开启)
- 并且当前网络不是“仅限Wi-Fi”模式下的移动数据
- 或者用户手动点击了播放按钮
这就可以写成:
if (autoPlayEnabled && !onMobileData || userClickedPlay) {
startVideo();
}
虽然看起来复杂,但拆开看,不过就是几个开关的组合控制。
逻辑运算不只是代码里的事
其实我们每天都在用逻辑运算做判断。比如:
“如果下雨或者天气太热,就不骑车上班”;
“周末有空并且朋友也来,才去爬山”;
“这不是紧急消息”就延迟回复——全是“与或非”的日常版本。
下次你点手机屏幕、刷视频、填表单的时候,不妨想想,是不是有一串“真”和“假”在背后悄悄运行,决定着下一步该做什么。逻辑运算,就是让机器学会“判断”的基本语言。