早上赶时间,站在便利店货架前,你其实在做条件判断:有豆浆就买豆浆,没有就拿牛奶;要是还顺眼,再加个包子。这和写代码里的条件判断差不多,只是我们用 if、else 这些词把日常逻辑翻译给了计算机。
最简单的选择:if
就像看到打折饭团才下手,程序也可以只在满足条件时行动:
if (hasDiscount) {
buyOnigiri();
}
变量 hasDiscount 是真是假,决定了要不要执行括号里的动作。就像你眼睛一扫价签,脑子瞬间决定。
二选一:if-else
早上没咖啡会头疼,但库存可能告急:
if (coffeeAvailable) {
pourCoffee();
} else {
drinkTea();
}
这种非此即彼的场景,生活中常见,代码里也最基础。不是喝咖啡,就是喝茶提神,总得选一个。
多路分支:else if 和 switch
可现实往往不止两个选项。比如根据天气决定出行方式:
if (weather === 'sunny') {
rideBike();
} else if (weather === 'rainy') {
takeBus();
} else if (weather === 'snowy') {
driveCar();
} else {
stayHome();
}
当判断条件变多,switch 有时更清晰:
switch(weather) {
case 'sunny':
rideBike();
break;
case 'rainy':
takeBus();
break;
case 'snowy':
driveCar();
break;
default:
stayHome();
}
像是菜单选餐,一项一项对上去,匹配上了就执行,完了跳出。
简洁表达:三元运算符
有些决定特别快,比如路过自动贩卖机,余额够就买冰的,不够只能买常温的:
const drinkTemp = balance > 3 ? 'chilled' : 'room';
一行搞定,不用写一堆括号。适合那种一眼能看穿的判断,干净利落。
组合判断:逻辑运算符
真正复杂的决策,往往要叠加多个条件。比如想吃甜食,但得血糖正常且没约健身:
if (bloodSugarNormal && !hasWorkoutPlan) {
eatCake();
}
&& 表示“并且”,|| 是“或者”。就像给自己设规则,全满足才行,或只要一条成立就通过。
写代码的条件判断,其实就是在教机器像人一样权衡。只不过我们把直觉拆成一条条规则,让它也能在早餐摊前做出选择。