摘要:在本教程中,您将学习如何使用 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); // Tuesday
Code 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); // 29
Code 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
值。
本教程对您有帮助吗?