switch, instruction
Active l'exécution d'une ou de plusieurs instructions quand la valeur d'une expression spécifiée correspond à une étiquette donnée.
switch (expression) {
case label1 :
[statementlist1]
[break;]
[ ...
[ case labelN :
[statementlistN]
[break;] ] ]
[ default :
[statementlistDefault]]
}
Arguments
expression
Obligatoire. Expression à évaluer.label1, ..., labelN
Obligatoire. Identificateur à comparer avec l'argument expression. Si l'expression est identique à l'étiquette (label === expression), l'exécution commence à la liste d'instructions (statementlist) suivant immédiatement le signe deux-points, et se poursuit jusqu'à la rencontre d'une instruction break (facultative) ou la fin d'une instruction switch.statementlist1, ..., statementlistN, statementlistDefault
Facultatif. Une ou plusieurs instructions à exécuter.
Notes
Utilisez la clause default pour fournir une instruction à exécuter si aucune des valeurs d'étiquette ne correspond à expression. Elle peut figurer à n'importe quel endroit du bloc de code switch.
Aucun ou plusieurs blocs label peuvent être spécifiés. Si aucune valeur label ne correspond à la valeur expression et qu'aucune clause default n'a été spécifiée, aucune instruction n'est exécutée.
L'exécution d'une instruction switch se déroule comme suit :
Évaluation de la valeur expression et recherche d'une correspondance dans label, dans l'ordre.
Si une valeur label correspond à expression, exécution de la liste d'instructions qui l'accompagnent.
Poursuite de l'exécution jusqu'à la rencontre d'une instruction break ou jusqu'à la fin d'une instruction switch. Cela signifie que plusieurs blocs label sont exécutés si une instruction break n'est pas utilisée.
Si aucun argument label ne correspond à expression, saut jusqu'à la clause default. En l'absence d'une clause default, saut jusqu'à la dernière étape.
Poursuite de l'exécution à partir de l'instruction qui suit la fin du bloc de code switch.
Exemple
L'exemple ASP.NET suivant teste le type d'un objet. Cet exemple n'utilise qu'un seul type, mais cela devrait vous permettre de comprendre également le fonctionnement de la fonction avec d'autres types d'objet.
<%@ 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));
%>