switch-Anweisung
Aktualisiert: November 2007
Aktiviert die Ausführung einer oder mehrerer Anweisungen, wenn der Wert eines festgelegten Ausdrucks einer Marke entspricht.
switch (expression) {
case label1 :
[statementlist1]
[break;]
[ ...
[ case labelN :
[statementlistN]
[break;] ] ]
[ default :
[statementlistDefault]]
}
Argumente
expression
Erforderlich. Der auszuwertende Ausdruck.label1, ..., labelN
Erforderlich. Ein Bezeichner, der mit expression verglichen werden soll. Falls label === expression zutrifft, beginnt die Ausführung mit der Anweisungsliste, die sich unmittelbar hinter dem Doppelpunkt befindet, und wird fortgesetzt, bis entweder eine optionale break-Anweisung oder das Ende der switch-Anweisung erreicht wird.statementlist1, ..., statementlistN, statementlistDefault
Optional. Eine oder mehrere auszuführende Anweisungen.
Hinweise
Mithilfe der default-Klausel können Sie eine Anweisung bereitstellen, die ausgeführt werden soll, wenn keiner der Markenwerte mit expression übereinstimmt. Die Klausel kann an einer beliebigen Stelle im switch-Codeblock stehen.
Es können keine oder mehrere label-Blöcke angegeben werden. Falls keine Entsprechung zwischen label und dem Wert von expression gefunden wird und kein default-Fall angegeben ist, werden keine Anweisungen ausgeführt.
Die Ausführung einer switch-Anweisung verläuft wie folgt:
Zunächst wird expression ausgewertet und ein sequenzieller Vergleich mit label durchgeführt, bis eine Entsprechung gefunden wird.
Wenn ein label-Wert expression entspricht, wird die damit verknüpfte Anweisungsliste ausgeführt.
Die Ausführung wird fortgesetzt, bis eine break-Anweisung gefunden wird oder die switch-Anweisung endet. Dies bedeutet, dass mehrere label-Blöcke ausgeführt werden, wenn keine break-Anweisung verwendet wird.
Wenn keine Übereinstimmung zwischen label und expression gefunden wird, wird der default-Fall verarbeitet. Ist kein solcher Fall vorhanden, wird der letzte Schritt ausgeführt.
Die Ausführung wird mit der Anweisung fortgesetzt, die auf das Ende des switch-Codeblockes folgt.
Beispiel
Im folgenden ASP.NET-Beispiel soll der Typ eines Objekts ermittelt werden. Obwohl in diesem Fall nur ein Typ verwendet wird, soll verdeutlicht werden, auf welche Weise andere Objekttypen von der Funktion verarbeitet werden.
<%@ 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));
%>