← 返回目录

9. if 分支判断语句

程序不能只会从上往下跑,还得看情况选路。用商城会员折扣这个真实例子,把三种 if 一次练透。

核心三步:
if——条件成立就执行
if...else——二选一
if...else if...else——多档判断

坑:== 和 === 搞混、条件忘写括号

9.1 互动演示

会员等级: 原价:
选等级、输原价,点按钮。

9.2 知识点逐条讲解(配合代码)

① if 单分支:条件对才做,不对就跳过

就像"如果下雨,就带伞"——条件成立才行动,不成立就当没这回事。这就是只有一条路的单分支。

// 库存数量
let stock = 12;
// 预警线
let warnNum = 20;

// 如果库存比预警线还少
if (stock < warnNum) {
  // 就执行这句
  console.log("【警告】库存不足,请及时补货");
}
// 库存够的话,上面这句根本不跑,直接跳过

② if...else 双分支:二选一,必走一条

像"如果及格就表扬,否则就批评"——两个结果里必选一个

if (stock < warnNum) {
  // 条件成立走这
  console.log("库存不足,请补货");
} else {
  // 不成立走这
  console.log("库存正常");
}

③ if...else if 多分支:会员折扣实战

如果有好几种情况(比如会员分四档),就用 if...else if 一个接一个。规则是从上往下挨个问,问中一个就执行、然后整个结束,后面的不再问。

// 会员等级:0普通 1白银 2黄金 3钻石
let level = 2;
// 原价
let originPrice = 200;
// 折扣,先默认不打折(1=原价)
let discount = 1;

if (level === 0) {
  // 普通:不打折
  discount = 1;
} else if (level === 1) {
  // 白银:95折
  discount = 0.95;
} else if (level === 2) {
  // 黄金:9折
  discount = 0.9;
} else if (level === 3) {
  // 钻石:8折
  discount = 0.8;
}

// 折后价 = 原价 × 折扣
let pay = originPrice * discount;
console.log("等级" + level + ",折后价" + pay);

如果你把多分支的顺序写反(比如先问"是不是会员"再问"是不是钻石"),可能一上来就被前面宽泛的条件接住,后面精确的分支永远轮不到。所以条件要从上往下,从具体到一般。作业让你换 level=0/1/3 分别试,就是练这个。

实战:用在哪 / 常见坑 / 怎么解决

① 可能在什么地方用:会员等级打折;成绩分段评级;库存低于预警线告警。

② 常见的问题:多分支顺序写反,宽泛条件先把精确分支接住了,后面永远走不到。

③ 解决思路:条件从窄到宽、从具体到一般排;写之前先在注释里画个流程图。

一句话记住:if 单分支只做一种;if...else 二选一;if...else if 从上往下问,问中即停;分等级/区间就用它

本页重点

API作用参数返回值代码示例
if...else按真假选一条分支跑括号里的条件执行第一个成立的分支let score = 80;
if (score >= 60) {
console.log("及格");
} else {
console.log("加油");
}
比较 + 逻辑把条件拼成 真/假条件true / falselet age = 20;
console.log(age >= 18 && age < 60);