上一章JavaScript教程请查看:if…else条件语句
在本教程中,你将学习如何使用switch…case语句在JavaScript中测试或计算具有不同值的表达式。
使用switch…case语句switch…case语句和if…else if…
else语句,几乎是一样的,switch…case语句根据一系列值测试变量或表达式,直到找到匹配项,然后执行与该匹配项对应的代码块。它的语法是:
switch(x){
case value1:
// 执行x === value1的代码
break;
case value2:
// 当x === value2时执行的代码
break;
...
default:
// 如果x与所有值不同,则执行代码
}
考虑下面的示例,其中显示了星期几的名称。
var d = new Date();
switch(d.getDay()) {
case 0:
alert("Today is Sunday.");
break;
case 1:
alert("Today is Monday.");
break;
case 2:
alert("Today is Tuesday.");
break;
case 3:
alert("Today is Wednesday.");
break;
case 4:
alert("Today is Thursday.");
break;
case 5:
alert("Today is Friday.");
break;
case 6:
alert("Today is Saturday.");
break;
default:
alert("No information available for that day.");
break;
}
getDay()方法将工作日作为0和6之间的数字返回,其中0表示星期日。有关日期方法的更多信息,请参见JavaScript日期和时间一章。
注意: 在一个switch…case语句中,使用严格的相等运算符(===)将表达式或变量的值与case值进行比较。这意味着如果x = “ 0” ,它不匹配大小写0:,因为它们的数据类型不相等。
【JS switch…case分支语句 – JavaScript教程】switch…case语句不同于if…else,witch语句逐行执行(即,一个语句接着一个语句),一旦JavaScript发现一个case子句的计算结果为true,它不仅执行与case子句对应的代码,而且还自动执行所有后续的case子句,直到switch块的末尾。
为了防止这种情况,你必须在每种情况之后包含一个break语句(正如你在上面的示例中看到的那样)。break语句告诉JavaScript解释器断开执行,一旦case语句执行了与第一个true case相关联的代码,它就会被阻塞。
但是,当case或default子句最后出现在switch语句中时,它并不需要break语句。尽管如此,终止最后一种情况(或switch语句中的default子句)是一种很好的编程实践。如果在switch语句中添加另一个case语句,则可以防止以后可能出现的编程错误。
default子句是可选的,它指定在大小写不匹配switch表达式时要执行的操作。default子句不一定是出现在switch语句中的最后一个子句。这里有一个例子,其中default不是最后一个子句。
var d = new Date();
switch(d.getDay()) {
default:
alert("期待周末.");
break;
case 6:
alert("Today is Saturday.");
break;
case 0:
alert("Today is Sunday.");
}
多个case共享相同的操作每个case值在switch语句中必须是唯一的。但是,不同的情况不需要有唯一的动作。几个case可以共享相同的动作,如下图所示:
var d = new Date();
switch(d.getDay()) {
case 1:
case 2:
case 3:
case 4:
case 5:
alert("It is a weekday.");
break;
case 0:
case 6:
alert("It is a weekend day.");
break;
default:
alert("Enjoy every day of your life.");
}
推荐阅读
- JS数组Array及其用法 – JavaScript教程
- JS if…else条件语句 – JavaScript教程
- JS数字类型及其操作 – JavaScript教程
- JS字符串及其操作 – JavaScript教程
- JS事件和事件处理器 – JavaScript教程
- JS操作符 – JavaScript教程
- JS数据类型 – JavaScript教程
- JS生成输出 – JavaScript教程
- JS使用变量 – JavaScript教程