Freigeben über


switch-Anweisung

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));
%>

Anforderungen

Version 3

Siehe auch

Referenz

break-Anweisung

if...else-Anweisung