switch 陳述式
當指定的運算式的值符合某個標籤時,可啟用一或多條陳述式。
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 區塊。 如果沒有一個 label 與 expression 的值相符,而且在沒有提供 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));
%>