写代码时遇到“如果A成立,再看B是否满足,否则检查C”这类逻辑,就得靠嵌套条件语句。它不是什么高深概念,就是把一个 if 塞进另一个 if 或 else 里,像俄罗斯套娃一样一层套一层。
最基础的嵌套:三层判断选早餐
比如早上决定吃啥:
先看有没有时间(>30分钟),有时间再看冰箱有没有鸡蛋,有鸡蛋就煎蛋,没有就煮面;没时间就直接啃面包。
if (time > 30) {
if (hasEggs) {
console.log("煎蛋");
} else {
console.log("煮面");
}
} else {
console.log("啃面包");
}注意缩进和花括号,不然容易迷路
有人图省事这么写:
if (score >= 90)
if (attendance >= 95)
grade = "A+";
else
grade = "A";看着简洁,但一旦加个日志或改行,else 就可能意外绑定到外层 if 上——这是经典“悬空 else”陷阱。老老实实用花括号,一眼看清归属:
if (score >= 90) {
if (attendance >= 95) {
grade = "A+";
} else {
grade = "A";
}
}嵌套太多?试试提前返回或拆成函数
如果嵌套超过三层,代码会变得难读又难改。比如验证用户登录:
if (user) {
if (user.active) {
if (user.verified) {
if (user.passwordValid) {
login();
}
}
}
}不如反着来:不满足就立刻退出,主流程保持扁平:
if (!user) return;
if (!user.active) return;
if (!user.verified) return;
if (!user.passwordValid) return;
login();或者把每步抽成小函数:isValidUser(user)、isPasswordCorrect(user, pwd),主逻辑就变成一行:if (isValidUser(user) && isPasswordCorrect(user, pwd)) login();
Python 里也一样,只是冒号和缩进换了个玩法
比如根据天气和钱包决定出门方式:
if weather == "rainy":
if wallet > 50:
print("打车")
else:
print("坐地铁")
else:
if wallet > 20:
print("骑共享单车")
else:
print("走路")嵌套本身不难,关键是别让它变成“逻辑毛线团”。写的时候多问一句:这个 else 真的属于它上面最近那个 if 吗?运行前自己默读一遍,比调试半天更省事。