JavaScript - Switch Case
Puoi usare più file if...else…ifistruzioni, come nel capitolo precedente, per eseguire un ramo a più vie. Tuttavia, questa non è sempre la soluzione migliore, soprattutto quando tutti i rami dipendono dal valore di una singola variabile.
A partire da JavaScript 1.2, puoi utilizzare un file switch dichiarazione che gestisce esattamente questa situazione, e lo fa in modo più efficiente di quanto ripetuto if...else if dichiarazioni.
Diagramma di flusso
Il diagramma di flusso seguente spiega il funzionamento di un'istruzione switch-case.
Sintassi
L'obiettivo di a switchistruzione è fornire un'espressione da valutare e diverse istruzioni da eseguire in base al valore dell'espressione. L'interprete controlla ciascunocasecontro il valore dell'espressione finché non viene trovata una corrispondenza. Se niente corrisponde, adefault condizione verrà utilizzata.
switch (expression) {
case condition 1: statement(s)
break;
case condition 2: statement(s)
break;
...
case condition n: statement(s)
break;
default: statement(s)
}
Il breakle dichiarazioni indicano la fine di un caso particolare. Se vengono omessi, l'interprete continuerà a eseguire ciascuna istruzione in ciascuno dei seguenti casi.
Spiegheremo break dichiarazione in Loop Control capitolo.
Esempio
Prova il seguente esempio per implementare l'istruzione switch-case.
<html>
<body>
<script type = "text/javascript">
<!--
var grade = 'A';
document.write("Entering switch block<br />");
switch (grade) {
case 'A': document.write("Good job<br />");
break;
case 'B': document.write("Pretty good<br />");
break;
case 'C': document.write("Passed<br />");
break;
case 'D': document.write("Not so good<br />");
break;
case 'F': document.write("Failed<br />");
break;
default: document.write("Unknown grade<br />")
}
document.write("Exiting switch block");
//-->
</script>
<p>Set the variable to different value and then try...</p>
</body>
</html>
Produzione
Entering switch block
Good job
Exiting switch block
Set the variable to different value and then try...
Le dichiarazioni di interruzione svolgono un ruolo importante nelle dichiarazioni di switch-case. Prova il codice seguente che utilizza l'istruzione switch-case senza alcuna istruzione break.
<html>
<body>
<script type = "text/javascript">
<!--
var grade = 'A';
document.write("Entering switch block<br />");
switch (grade) {
case 'A': document.write("Good job<br />");
case 'B': document.write("Pretty good<br />");
case 'C': document.write("Passed<br />");
case 'D': document.write("Not so good<br />");
case 'F': document.write("Failed<br />");
default: document.write("Unknown grade<br />")
}
document.write("Exiting switch block");
//-->
</script>
<p>Set the variable to different value and then try...</p>
</body>
</html>
Produzione
Entering switch block
Good job
Pretty good
Passed
Not so good
Failed
Unknown grade
Exiting switch block
Set the variable to different value and then try...