Istruzione switch
Attiva l'esecuzione di una o più istruzioni quando il valore dell'espressione specificata corrisponde a un'etichetta.
switch (expression) {
case label1 :
[statementlist1]
[break;]
[ ...
[ case labelN :
[statementlistN]
[break;] ] ]
[ default :
[statementlistDefault]]
}
Argomenti
expression
Obbligatorio. Espressione da valutare.label1, ..., labelN
Obbligatorio. Identificatore a cui expression deve corrispondere. Se label === expression, l'esecuzione inizia con l'elenco delle istruzioni immediatamente dopo i due punti e continua fino a quando non viene individuata un'istruzione break, facoltativa, oppure fino alla fine dell'istruzione switch.statementlist1, ..., statementlistN, statementlistDefault
Facoltativo. Una o più istruzioni da eseguire.
Note
Utilizzare la clausola default per specificare l'istruzione da eseguire se nessuno dei valori delle etichette corrisponde a expression. Tale clausola può essere specificata in qualsiasi punto del blocco di codice dell'istruzione switch.
È possibile specificare zero o più blocchi label. Se nessun valore di label corrisponde al valore di expression e non viene specificato un caso default, non verrà eseguita alcuna istruzione.
Il flusso di esecuzione di un'istruzione switch è il seguente:
Viene valutata expression confrontando il risultato con il valore di label fino a quando non viene individuata una corrispondenza.
Se un valore di label è uguale a expression, viene eseguita il corrispondente elenco di istruzioni.
L'esecuzione continua fino a quando non viene individuata un'istruzione break oppure fino alla fine dell'istruzione switch. Se non si utilizza alcuna istruzione break, verranno pertanto eseguiti tutti i successivi blocchi label.
Se nessun valore di label è uguale a expression, viene eseguito il caso default. Se non è presente alcun caso default, il flusso di programma si posiziona dopo l'ultima istruzione.
L'esecuzione continua con l'istruzione che segue la fine del blocco di codice switch.
Esempio
Nell'esempio ASP.NET riportato di seguito viene verificato il tipo di un oggetto. In questo caso, viene utilizzato solamente un tipo, ma è facile comprendere il funzionamento della funzione con altri tipi di oggetto.
<%@ 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));
%>