常识指南
霓虹主题四 · 更硬核的阅读氛围

嵌套条件语句怎么写?别绕晕,看懂这几种常见写法就稳了

发布时间:2026-02-10 23:30:21 阅读:1 次

写代码时遇到“如果A成立,再看B是否满足,否则检查C”这类逻辑,就得靠嵌套条件语句。它不是什么高深概念,就是把一个 if 塞进另一个 ifelse 里,像俄罗斯套娃一样一层套一层。

最基础的嵌套:三层判断选早餐

比如早上决定吃啥:
先看有没有时间(>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 吗?运行前自己默读一遍,比调试半天更省事。