JavaScript switch case
在本教程中,您将学习如何使用 JavaScript switch 语句根据多个条件执行分支语句
在本教程中,您将学习如何使用 JavaScript switch
语句根据多个条件执行分支语句。
JavaScript switch case 语句简介
switch
语句评估一个 expression
,将其结果与 case
值进行比较,并执行与匹配值关联的 case
语句。
下面说明了 switch
语句的语法:
switch (expression) {
case value1:
statement1;
break;
case value2:
statement2;
break;
case value3:
statement3;
break;
default:
statement;
}
让我们看看代码是如何运行的。
- 首先,评估
switch
关键字后面括号内的expression
。 - 其次,将表达式的结果从上到下 与
case
分支中value1
,value2
, …进行比较。值得注意的是,switch
语句使用严格比较===
。 - 第三,
expression
执行结果等于case
关键字后面的值时,执行case
分支中的语句。break
表示语句退出switch
语句。如果分支没有break
语句,代码执行将进入下一个case
分支。如果expression
的结果不严格等于任何值,switch
声明将会执行default
分支的语句。
只要找到匹配项,switch
语句就会停止将 expression
的结果与剩余 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;
}
JavaScript switch 示例
让我们举一些使用 JavaScript switch
语句的例子。
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
输出:
Tuesday
看看代码是如何运行。
首先,声明保存日期编号的日期变量和日期名称变量 (dayName)。
其次,使用 switch
语句根据天数获取星期几。如果 day 是 1
,则该日是周末的Sunday。如果天是 2
,则是Monday
,依此类推。
第三,将星期几打印到控制台。
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
在这个例子中,我们有四种情况:
- 如果月份是 1、3、5、7、8、10 或 12,则一个月的天数是 31。
- 如果月份为 4、6、9 或 11,则该月的天数为 30。
- 如果月份为2,年份不是闰年,则天数为 28。如果年份为闰年,则天数为 29。
- 如果月份不在有效范围(1-12)内,则
default
分支被执行并将dayCount
变量设置为-1,表示无效月份。
结论
switch
语句计算一个表达式,将其结果与case
值进行比较,并执行与匹配关联语句。- 使用
switch
语句而不是复杂的if...else...if
语句使代码更可阅读。 switch
语句使用严格比较===
与expression
和case
值进行比较。