JavaScript/Selezione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Ramac (discussione | contributi)
+ esercizi, cambio avanzamento a 100%
Riga 135:
Bisogna fare attenzione a non 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.
 
== Operatore ternario ==
Vediamo un altro esempio di un semplice programma che converta un voto numerico in un giudizio:
Esiste oltre agli operatori già menzionati nel capitolo precedente anche un cosiddetto '''operatore ternario''', che lavora con tre valori. La sua sintassi è:
<source lang=javascript>condizione ? esp1 : esp2</source>
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:
<source lang=javascript>
var anni = prompt('Quanti anni hai?', 20);
var msg = "Ciao, vedo che sei " + (anni >= 18 ? "maggiorenne" : "minorenne") + "!";
alert(msg);
</source>
In questo caso l'operatore ternario restituisce <code>"maggiorenne"</code> se <code>anni</code> è maggiore o uguale a 18, altrimenti restituisce <code>"minorenne"</code>.
 
== Esercizi ==
* Scrivere un programma che converta un voto numerico chiesto all'utente (da 0 a 10) in un giudizio (insufficiente, sufficiente, buono, ecc...).
{{cassetto|titolo=Soluzione|testo=
<source lang=javascript>
var voto = prompt("Introduci il voto dell'alunno",6);
Line 175 ⟶ 188:
</source>
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> viene restituito un messaggio di errore
}}
 
* È possibile risolvere il programma precedente usando solo con istruzioni <code>if</code>?
== Operatore ternario ==
{{cassetto|titolo=Soluzione|testo=
Esiste oltre agli operatori già menzionati nel capitolo precedente anche un cosiddetto '''operatore ternario''', che lavora con tre valori. La sua sintassi è:
Sì, prevedendo una serie di <code>if</code>, meglio se utilizzando una struttura <code>else if</code>:
<source lang=javascript>condizione ? esp1 : esp2</source>
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:
<source lang=javascript>
//...
var anni = prompt('Quanti anni hai?', 20);
if (voto = 0) {
var msg = "Ciao, vedo che sei " + (anni >= 18 ? "maggiorenne" : "minorenne") + "!";
msg = "Il compito non è stato consegnato (non classificabile)";
alert(msg);
} else if (voto = 1 or voto = 2) {
msg = "Insufficienza grave"";
//così avanti tutti gli altri casi, fino all'ultimo
//che corrisponde al default
} else {
msg = "Dati non validi";
}
</source>
}}
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:JavaScript|Selezione]]
{{avanzamentoAvanzamento|100%|30 dicembre 2007}}