你有没有过这样的经历?早上出门前看天气预报:“如果下雨,就带伞;否则,带防晒帽。” 或者点奶茶时想:“如果加珍珠,总价加3元;否则,按原价。” 这些日常决策的逻辑,在编程里有个专门的工具来处理——它就是今天要讲的 if...else 语句。

别被名字吓到,其实它的思路和你说“如果…就…”的逻辑几乎一模一样。我们用生活场景来拆解它,保证你看完就能上手用。


1. 最基础的“如果…就…”:if 语句

假设你现在要写一个程序,功能是:如果用户年龄大于等于18岁,就输出“已成年”。这时候就需要 if 语句。

先看一段代码:

let age = 20; // 假设用户的年龄是20岁

if (age >= 18) { 
  console.log("已成年"); 
}

这段代码的意思很直白:

  • let age = 20:先定义一个变量 age(年龄),并赋值为20。
  • if (age >= 18):这是“如果”的条件——判断 age 是否大于等于18。
  • { ... }:大括号里的内容是“就”要执行的代码块,这里就是输出“已成年”。

关键点解释

  • 条件表达式(比如 age >= 18)的结果是一个“布尔值”(只有两种可能:true 真 或 false 假)。当条件为 true 时,才会执行大括号里的代码;如果是 false,就跳过。
  • 比如如果 age 是15,那么 age >= 18 的结果是 false,这时候 console.log("已成年") 就不会执行。

2. 加上“否则”:else 语句

但生活里的决策往往不止一种情况。比如刚才的例子,除了“已成年”,还需要告诉未成年的用户“未成年”。这时候就需要 else 来补充“否则”的情况。

修改上面的代码:

let age = 15;

if (age >= 18) { 
  console.log("已成年"); 
} else { 
  console.log("未成年"); 
}

这里的 else 就相当于“如果不满足前面的条件(age >= 18false),就执行这里的内容”。此时因为 age 是15,条件不满足,所以会输出“未成年”。

小提醒else 必须和 if 配对使用,不能单独出现哦!


3. 多个条件怎么办?else if 来帮忙

有时候需要判断的条件不止两种。比如考试评分:90分以上是“优秀”,80-89是“良好”,70-79是“中等”,60-69是“及格”,60以下是“不及格”。这时候就需要 else if 来处理多个条件。

举个代码例子:

let score = 85; // 假设考试分数是85分

if (score >= 90) {
  console.log("优秀");
} else if (score >= 80) { 
  console.log("良好"); 
} else if (score >= 70) { 
  console.log("中等"); 
} else if (score >= 60) { 
  console.log("及格"); 
} else { 
  console.log("不及格"); 
}

这段代码的执行逻辑像“闯关游戏”:

  • 先检查第一个条件 score >= 90,如果满足(比如95分),就输出“优秀”,后面的 else ifelse 都不会再检查;
  • 如果不满足第一个条件(比如85分),就继续检查下一个条件 score >= 80,满足的话输出“良好”;
  • 以此类推,直到找到第一个满足的条件,或者全部不满足时执行最后的 else(比如50分输出“不及格”)。

注意else if 可以有多个,顺序很重要!比如如果把 score >= 80 写在 score >= 90 前面,那么95分会被错误地判断为“良好”(因为它会先满足 score >= 80)。所以一定要把更严格的条件放在前面


4. 条件可以是哪些“东东”?

你可能会问:“条件表达式里只能写 age >= 18 这种吗?” 当然不是!在 JavaScript 里,只要最终能算出 truefalse 的表达式,都可以作为条件。

常见的条件类型包括:

  • 比较运算>, <, >=, <=, ===(严格等于), !==(严格不等于)等。比如 name === "小明"(判断名字是否是“小明”)。
  • 逻辑运算&&(并且), ||(或者), !”(非)。比如 (age >= 18) && (hasIdCard === true)`(判断是否成年且有身份证)。
  • “真值”和“假值”:JavaScript 里有些值会被默认当作 false,比如 0、空字符串 ""null(空)、undefined(未定义)、NaN(非数字);其他值基本都算 true。比如 if ("hello") 会执行代码块(因为 "hello" 不是空字符串),而 if (0) 不会执行(因为0是假值)。

总结:if...else 是程序的“决策开关”

简单来说,if...else 就是给程序装了一个“决策开关”:根据不同的条件,决定执行哪段代码。它可以是一个 if,也可以是 if...else,甚至是一连串的 if...else if...else

下次你需要让程序“做判断”时,比如根据用户输入弹出不同提示、根据分数显示等级,或者控制页面元素的显示隐藏,都可以用 if...else 来实现。

现在你可以试试自己写几个小例子:比如判断一个数是奇数还是偶数,或者根据月份输出对应的季节。动手敲代码,比光看更有效哦!


希望这篇文章能帮你理解 if...else 的逻辑。如果有哪里没看懂,或者想讨论具体的使用场景,欢迎留言~