JavaScript/Selezione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
switch
Ramac (discussione | contributi)
switch
Riga 65:
istruzioni
}
Quando il browser incontra questa istruzione, scorre tutti i valori <code>val1</code>, <code>val2</code>, ...<code>val_n</code> fino a che non incontra un valore uguale all'espressione indicata tra parentesi. Quandooppure incontraun ilblocco valore<code>default</code>. cheIn soddisfaquesto l'uguaglianza,caso inizia ad eseguire il codice che segue i due punti. Nel casoSe non incontri nessun valore che sia uguale allc'espressione iniziale, è possibile prevedere unalcun blocco <code>default</code> e non ci sono valori che soddisfino l'uguaglianza, seil vieneparser raggiunto,prosegue vieneeseguendo eseguitole comunqueistruzioni dopo la chiusura delle parentesi graffe.<br/>
Si faccia però attenzione a questo spezzone:
var a = 1;
switch (a + 1) {
case 1:
alert("a = zero");
case 2:
alert("a = uno");
case 3:
alert("a = due");
case 4:
alert("a = tre");
default:
alert("a maggiore di 3");
}
Si potrebbe supporre che l'output di questo codice sia solo una alertbox contenente il messaggio <code>a = 1</code> in quanto il blocco 2 soddisfa l'uguaglianza (<code>a + 1 = 2</code>). Non è tuttavia così: il parser dopo essersi fermato al blocco 2 proseguirà leggendo anche i blocchi successivi e il blocco default. Per evitare ciò dobbiamo inserire un'istruzione <code>break<code>. L'istruzione <code>break</code> indica al parser di interrompere la lettura della struttura <code>switch</code> e di proseguire oltre le parentesi graffe. L'esempio corretto è:
switch (a + 1) {
case 1:
alert("a = zero");
break;
case 2:
alert("a = uno");
break;
case 3:
alert("a = due");
break;
case 4:
alert("a = tre");
break;
default:
alert("a maggiore di 3");
}
Ovviamente il <code>break</code> non è necessario per l'ultimo blocco.<br/>
Vediamo poi un altro listato:
switch (a + 1) {
default:
alert("a maggiore di 3");
break;
case 1:
alert("a = zero");
break;
case 2:
alert("a = uno");
break;
case 3:
alert("a = due");
break;
case 4:
alert("a = tre");
}
Bisogna fare attenzione a porre il blocco <code>default</code> in cima, in quanto il parser si fermerebbe subito lì e, incontrata l'istruzione <code>break</code>, salterebbe alla fine del blocco <code>switch</code> senza valutare le altre espressioni.
[[Categoria:Linguaggio JavaScript|Selezione]]