摘要:在本教程中,您将学习如何使用 JavaScript switch 语句根据多个条件执行代码块。
JavaScript switch case 语句简介
switch 语句会评估一个 表达式,将其结果与 case 值进行比较,并执行与匹配的 case 值关联的语句。
以下是 switch 语句的语法示例
switch (expression) {
case value1:
statement1;
break;
case value2:
statement2;
break;
case value3:
statement3;
break;
default:
statement;
}Code language: JavaScript (javascript)工作原理。
- 首先,评估
switch关键字后的括号中的表达式。 - 其次,将表达式的结果与
case分支中的value1、value2等进行比较,从上到下比较。switch语句使用严格比较(===)。 - 第三,执行
case分支中的语句,其中表达式的结果等于case关键字后面的值。break语句会退出switch语句。如果您省略break语句,则代码执行将从原始case分支继续到下一个分支。如果表达式的结果与任何值都不严格相等,则switch语句将执行default分支中的语句。
只要找到匹配项,switch 语句就会停止将 表达式 的结果与剩余的 case 值进行比较。
switch 语句类似于 if…else…if 语句。但它的语法更易读。
以下流程图说明了 switch 语句
在实践中,您通常使用 switch 语句来替换复杂的 if-else-if 语句,从而使代码更易读。
从技术上讲,switch 语句等效于以下 if-else-if 语句
if (expression === value1) {
statement1;
} else if (expression === value2) {
statement2;
} else if (expression === value3) {
statement3;
} else {
statement;
}
Code language: JavaScript (javascript)JavaScript switch case 示例
让我们看一些使用 JavaScript switch 语句的示例。
1) 使用 JavaScript switch 语句获取一周中的某一天
以下示例使用 switch 语句根据天数获取一周中的某一天
let day = 3;
let dayName;
switch (day) {
case 1:
dayName = 'Sunday';
break;
case 2:
dayName = 'Monday';
break;
case 3:
dayName = 'Tuesday';
break;
case 4:
dayName = 'Wednesday';
break;
case 5:
dayName = 'Thursday';
break;
case 6:
dayName = 'Friday';
break;
case 7:
dayName = 'Saturday';
break;
default:
dayName = 'Invalid day';
}
console.log(dayName); // TuesdayCode language: JavaScript (javascript)输出
Tuesday工作原理。
首先,声明 day 变量,它包含天数,以及 dayName 变量。
其次,使用 switch 语句根据天数获取一周中的某一天。如果天数为 1,则一周中的某一天为 Sunday。如果天数为 2,则一周中的某一天为 Monday,依此类推。
第三,将一周中的某一天输出到控制台。
2) 使用 JavaScript switch 语句根据月份获取天数
以下示例使用 switch 语句获取某个月的天数
let year = 2016;
let month = 2;
let dayCount;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dayCount = 31;
break;
case 4:
case 6:
case 9:
case 11:
dayCount = 30;
break;
case 2:
// leap year
if ((year % 4 == 0 && !(year % 100 == 0)) || year % 400 == 0) {
dayCount = 29;
} else {
dayCount = 28;
}
break;
default:
dayCount = -1; // invalid month
}
console.log(dayCount); // 29Code language: JavaScript (javascript)在此示例中,我们有四个情况
- 如果月份是 1、3、5、7、8、10 或 12,则该月的天数为 31。
- 如果月份是 4、6、9 或 11,则该月的天数为 30。
- 如果月份是 2,且年份不是闰年,则天数为 28。如果年份是闰年,则天数为 29。
- 如果月份不在有效范围内(1-12),则
default分支执行,并将dayCount变量设置为 -1,这表示月份无效。
总结
switch语句会评估一个表达式,将其结果与case值进行比较,并执行与匹配的case值关联的语句。- 使用
switch语句而不是复杂的if...else...if语句,可以使代码更易读。 switch语句使用严格比较(===)来比较表达式与case值。
本教程对您有帮助吗?