JavaScript/Selezione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
switch
Ramac (discussione | contributi)
m esempio switch + operatore ternario
Riga 116:
}
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.
 
Vediamo un altro esempio di un semplice programma che converta un voto numerico in un giudizio:
var voto = prompt("Introduci il voto dell'alunno",6);
var msg;
switch (voto) {
case 0:
msg="Il compito non è stato consegnato (non classificabile)";
break;
case 1:
case 2:
msg="Insufficienza grave";
break;
case 3:
case 4:
msg="Insufficienza";
break;
case 5:
msg="Sufficienza scarsa";
break;
case 6:
msg="Sufficienza";
break;
case 7:
msg="Sufficienza piena";
break;
case 8:
msg="Buono";
break;
case 9:
msg="Discreto";
break;
case 10:
msg="Ottimo con lode";
break;
case default:
msg="Dati non validi";
}
alert(msg);
Analizzando il codice, possiamo vedere che nei casi <code>voto</code> sia uguale ad esempio a 1 e 2 o a 3 e 4 viene eseguita la stessa operazione in quanto non c'è un <code>break</code> per ogni blocco <code>case</code>. Se nessuno dei valori soddisfa l'uguaglianza con <code>a</code>
 
== Operatore ternario ==
Esiste oltre agli operatori già menzionati nel capitolo precedente anche un cosiddetto '''operatore ternario''', che lavora con tre valori. La sua sintassi è:
condizione ? esp1 : esp2
Quando il parser incontra questa notazione, valuta il valore booleano di <code>condizione</code>. Se è vero, restituisce il valore di <code>esp1</code> altrimenti quello di <code>esp2</code>. Questo permette di creare semplici selezioni; ad esempio:
var anni = prompt('Quanti anni hai?', 20);
var msg = "Ciao, vedo che sei " + (anni >= 18 ? "maggiorenne" : "minorenne") + "!";
alert(msg);
In questo caso l'operatore ternario restituisce <code>"maggiorenne"</code> se <code>anni</code> è maggiore o uguale a 18, altrimenti restituisce <code>"minorenne"</code>.
[[Categoria:Linguaggio JavaScript|Selezione]]