switch 语句

当指定的表达式的值与一个标签匹配时,使一条或多条语句得以执行。

switch (expression) {
   case label1 :
      [statementlist1]
      [break;]
 [ ...
 [ case labelN :
      [statementlistN]
      [break;] ] ]
 [ default :
      [statementlistDefault]]
} 

参数

  • 表达式
    必选。 要计算的表达式。

  • label1, ..., labelN
    必选。 要与表达式 相匹配的标识符。 如果标记 === 表达式,则从冒号后面紧接的语句列表处开始执行,并继续此执行,直到遇到一个可选 break 语句,或到达 switch 语句的末尾为止。

  • statementlist1, ..., statementlistN, statementlistDefault
    可选。 要被执行的一个或多个语句。

备注

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

可以指定零个或多个标记 块。 如果没有标记表达式 的值匹配,并且没有提供 default 子句,则不执行任何语句。

switch 语句将按如下流程执行:

  • 计算表达式 的值并依次查看标记,直到找到一个匹配。

  • 如果标记 的值等于表达式,则执行其相伴的语句列表。

    继续执行,直到遇到一个 break 语句,或直到 switch 语句结束。 这意味着,如果没有使用 break 语句,则将执行多个 label 块。

  • 如果没有标记 等于表达式,则跳转到 default 子句。 如果没有 default 子句,则转到最后一步。

  • 在 switch 代码块末尾之后的语句处将继续执行过程。

示例

下面的 ASP.NET 示例将测试一个对象的类型。 在此例中仅使用了一种类型,但您应该可以清楚地看出该函数是如何使用其他对象类型的。

<%@ language="jscript" %>
<%
var d = new Number();
function MyObjectType(obj : Object) : String {
   switch (obj.constructor){
      case Date:
         return "Object is a Date.";
         break;
      case Number:
         return "Object is a Number.";
         break;
      case String:
         return "Object is a String.";
         break;
      default: 
         return "Object is unknown.";
   }
}
Response.Write(MyObjectType(d));
%>

要求

版本 3

请参见

参考

break 语句

if...else 语句