JavaScript 条件语句
条件语句可以让我们根据特定的条件控制代码的执行流程。
简单来说,它们让你的程序能够“做决定”,执行不同的代码路径,并对各种输入做出动态反应。如果没有条件语句,程序就只能傻傻地从头执行到尾,无法处理复杂的场景或用户交互。
1. if 语句:有条件地执行代码
if 语句是条件语句最基本的形式。它允许你仅在指定条件为真(true)时才执行一段代码。
1.1 语法
if (条件) {
// 如果条件为真 (true),则执行此处的代码
}- 条件 (condition): 一个计算结果为
true(真)或false(假)的表达式。这可以是一个简单的比较(例如x > 5),也可以是复杂的逻辑表达式。 - {} (花括号): 花括号包裹了当条件为真时要执行的代码块。
- 注意: 虽然如果代码块只有一行,技术上可以省略花括号,但这是一种不好的习惯。为了代码的可读性和避免日后出错,请始终加上花括号。
1.2 示例 1:基础 if 语句
let age = 20;
if (age >= 18) {
console.log("你已经成年。");
}在这个例子中,程序会评估条件 age >= 18。因为 age 是 20,条件为真,所以控制台会打印出“你已经成年。”
1.3 示例 2:使用布尔变量的 if 语句
let isRaining = true; // isRaining 意为“正在下雨”
if (isRaining) {
console.log("带把伞!");
}这里,条件直接就是一个布尔变量 isRaining。因为它的值是 true,所以会打印“带把伞!”。
1.3 示例 3:省略花括号(不推荐)
let number = 10;
if (number > 5)
console.log("数字大于 5。"); // 这行代码会根据条件执行
console.log("这行代码永远会执行。"); // 警告:这行代码与 if 无关,永远会执行!虽然这段代码在语法上没问题,但我们强烈不建议这样写。
只有第一个 console.log 属于 if 语句。第二个 console.log 无论条件如何都会执行。这会导致意外的 Bug 并让代码难以阅读。请始终使用花括号 {}。
2. else 语句:当条件为假时执行
else 语句提供了一个备选方案。当 if 中的条件为假(false)时,程序会执行 else 代码块中的内容。
2.1 语法
if (条件) {
// 如果条件为真,执行这里
} else {
// 如果条件为假,执行这里
}2.2 示例 1:if...else 语句
let temperature = 15;
if (temperature > 20) {
console.log("这是温暖的一天。");
} else {
console.log("这是凉爽的一天。");
}在这个例子中,条件 temperature > 20 被评估。因为 temperature 是 15,条件为假,程序跳过第一个块,直接执行 else 块,打印出“这是凉爽的一天。”
2.2 示例 2:检查偶数或奇数
let num = 7;
if (num % 2 === 0) {
console.log(num + " 是一个偶数。");
} else {
console.log(num + " 是一个奇数。");
}这个例子使用了取模运算符 (%)。如果 num 除以 2 的余数是 0,它就是偶数;否则,它就是奇数。
3. else if 语句:处理多个条件
else if 语句允许你按顺序检查多个条件。它提供了一种基于不同情况执行不同代码块的方法。
3.1 语法
if (条件1) {
// 如果 条件1 为真,执行这里
} else if (条件2) {
// 如果 条件1 为假 且 条件2 为真,执行这里
} else {
// 如果 条件1 和 条件2 都为假,执行这里
}你可以根据需要使用任意数量的 else if 语句。最后的 else 块是可选的,只有当前面所有条件都不满足时才会执行。
3.2 示例 1:if...else if...else 语句
let score = 75;
if (score >= 90) {
console.log("等级:A");
} else if (score >= 80) {
console.log("等级:B");
} else if (score >= 70) {
console.log("等级:C");
} else if (score >= 60) {
console.log("等级:D");
} else {
console.log("等级:F");
}在这个例子中,代码按顺序检查 score 的值。一旦遇到第一个为真的条件,就会执行对应的代码块,并跳过剩余的所有检查。在这里,score >= 70 是第一个满足的条件,所以打印“等级:C”。
3.3 示例 2:判断季节
let month = 4; // 四月
if (month >= 3 && month <= 5) {
console.log("春天");
} else if (month >= 6 && month <= 8) {
console.log("夏天");
} else if (month >= 9 && month <= 11) {
console.log("秋天");
} else {
console.log("冬天");
}这个例子使用了逻辑运算符 (&&,意为“并且”) 来检查月份是否在特定范围内。
3.4 else if 的重要注意事项
- 顺序很重要: 条件是按从上到下的顺序评估的。一旦某个条件满足,剩下的
else if和else都会被忽略。因此,你需要按照逻辑顺序排列条件。 - 排他性:
else if结构意味着这些条件是互斥的。最终只有一个代码块会被执行。 - 可选的
else: 最后的else是可选的。如果你省略它,并且所有条件都不满足,那么什么都不会发生。
4. 嵌套条件语句 (Nesting)
你可以在一个 if、else if 或 else 语句内部再放入另一个条件语句,这叫做嵌套。它可以用来创建更复杂的决策逻辑。
4.1 示例:嵌套 if 语句
let age = 25;
let hasLicense = true; // 是否有驾照
if (age >= 18) {
console.log("你的年龄足够开车。");
// 内部的 if 语句
if (hasLicense) {
console.log("你被允许开车。");
} else {
console.log("你需要驾照才能开车。");
}
} else {
console.log("你的年龄还不够开车。");
}在这个例子中,外层的 if 先检查年龄。如果年龄达标,程序才会进入内部,检查是否有驾照。
提示: 虽然嵌套是允许的,但过深的嵌套会让代码变得极其难读。在未来的学习中,我们会通过逻辑运算符或拆分函数来优化它。