switch 语句

JScript


switch 语句

当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。

switch (expression) {    case label :
       statementlist
   case label :
       statementlist
   ...
   default :

       statementlist
}

参数

expression

要求值的表达式。

label

根据 expression 来匹配的标识符。如果 label === expression,则立即从冒号后的 statementlist 处开始执行,直到遇到一个可选的 break 语句,或到达 switch 语句的最后。

statementlist

要被执行的一个或多个语句。

说明

使用 default 子句来提供一个语句,该语句只在没有任何一个标签值与 expression 相匹配时才被执行。它可以出现在 switch 代码块内的任何地方。

可以指定零或多个 label 块。如果没有 labelexpression 的值匹配,并且没有提供 default 情况,则不执行任何语句。

通过 switch 语句执行流程如下:

  • expression 的值并依次序查看 label,直到找到一个匹配。
  • 如果 label 的值等于 expression 的值,则执行它相应的 statementlist
    继续执行,直到遇到一个 break 语句,或者 switch 语句结束。这意味着如果没有使用一个 break 语句,则多个 label 块被执行。
  • 如果没有 label 等于 expression 的值,则跳转到 default 情况。 如果没有 default 情况,则跳转到最后一步。
  • 继续执行紧接 switch 代码块末尾的语句。

示例

下面示例测试一个对象的类型:

function MyObject() {
...}

switch (object.constructor){
   case Date:
   ...
   case Number:
   ...
   case String:
   ...
   case MyObject:
   ...
   default: 
   ...
}

要求

版本 3

请参阅

break 语句 | if...else 语句