编辑这个页面须要登录或更高权限!

JavaScript switch语句

Switch是与if ... else ...相同的条件语句,不同之处在于switch语句允许根据值列表测试变量是否相等。

使用switch从要执行的许多代码块中选择一个。这是一个完美的解决方案,嵌套if…else语句。

一条switch语句如下所示:

switch (expression) {
  case value1:  
    //语句执行
    //表达式的结果与value1匹配
  break;
  case value2:  
    //语句执行
    //表达式的结果与value2匹配
  break;
  ...
  case valueN:  
    //语句执行
    //表达式的结果与value N匹配
  break;
  default:
   //当以上任何一项都不执行时
   //执行这里的代码块
 }

按照上面代码块的逻辑,这是将要发生的事件的顺序:

  • switch表达式一次求值

  • 将表达式的值与每种情况的值进行比较

  • 如果匹配,则执行相关的代码块

  • 如果所有情况都不匹配,则执行默认代码块

以下示例使用工作日编号来计算星期几:

var day;
switch (new Date().getDay()) {
case 0: 
 day = "Sunday";
 break;
case 1: 
 day = "Monday";
 break;
case 2: 
 day = "Tuesday";
 break;
case 3: 
 day = "Wednesday";
 break;
case 4: 
 day = "Thursday";
 break;
case 5: 
 day = "Friday";
 break;
case 6: 
 day = "Saturday";
 break;
default: 
 day = "Undefined Day";
}
测试看看‹/›

break 关键字

break与每个case标签相关联的关键字可确保一旦执行了匹配的语句,程序便会退出切换,并在切换后的语句处继续执行。如果省略break,程序将在switch语句的下一个语句处继续执行。

如果您忘记休息,那么脚本将从符合条件的情况开始运行,然后在满足条件的情况下运行情况:

var num = Number(document.querySelector("input").value);
var text;
switch (num) {
   case 1: 
    text = "您输入的号码是 1";
   case 2: 
    text = "您输入的号码是 2";
   case 3: 
    text = "您输入的号码是 3";
   case 4: 
    text = "您输入的号码是 4";
   case 5: 
    text = "您输入的号码是 5";
   default: 
    text = "执行默认语句";
}
测试看看‹/›

没有必要中断switch块中的最后一种(即default)情况。因为语句块最终在这里中断(结束)。

default  关键字

如果没有case匹配,则default关键字指定要运行的一些代码。

switch中只能有一个默认语句。尽管这是可选的,但建议您使用它,因为它可以处理预料之外的情况。

多种情况

有时,您会希望不同的情况使用相同的代码,或者使用通用代码。

这是一个操作顺序switch语句的一个示例,其中四个不同的值执行完全相同的操作:

var num = Number(document.querySelector("input").value);
var text;

switch (num) {
   case 1:
   case 2:
   case 3:
   case 4:
  text = "你输入的数字介于两者之间 1 - 4";
  break;
   case 5:
   case 6:
   case 7:
   case 8:
  text = "你输入的数字介于两者之间 5 - 8";
  break; 
   default: text = "执行默认语句";
}
测试看看‹/›

如果多个case与值匹配,则选择第一个case。

如果找不到匹配的case,程序将继续使用默认标签。

如果未找到默认标签,则程序将继续执行切换后的语句。

JavaScript菜鸟教程
JavaScript 对象
JavaScript 函数
JS HTML DOM
JS 浏览器BOM
AJAX 菜鸟教程
JavaScript 参考手册