Share via


switch 陳述式

更新:2007 年 11 月

當指定的運算式的值符合某個標籤時,可啟用一或多條陳述式。

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

引數

  • expression
    必要項。要評估的運算式。

  • label1, ..., labelN
    必要項。與 expression 比對的識別項。如果 label===expression,則會立刻開始執行冒號後面的陳述式清單,直到 break 陳述式 (選擇項) 出現,或 switch 陳述式結束為止。

  • statementlist1, ..., statementlistN, statementlistDefault
    選擇項。要執行的一或多個陳述式。

備註

使用 default 子句,以提供在沒有標籤值與 expression 相符的情況下要執行的陳述式。它可以出現在 switch 程式碼區塊中的任何位置。

可指定零或多個 label 區塊。如果沒有一個 labelexpression 的值相符,而且在沒有提供 default 的情況下,將不會執行任何陳述式。

switch 陳述式的執行程序如下:

  • 計算 expression 並依序查看 label,直到找到符合的項目為止。

  • 如果 label 的值等於 expression,則執行其附隨的 statementlist。

    繼續執行直到 break 陳述式出現或 switch 陳述式結束為止。這表示若不使用 break 陳述式,就會執行多個 label 區塊。

  • 如果沒有 label 等於 expression,則執行 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 陳述式