Nella precedente lezione abbiamo visto come creare una struttura condizionale utilizzando le clausole if, else if e else. In realtà questo costrutto non è l’unico tipo di struttura di controllo disponibile in Javascript. In questa lezione, infatti, vedremo come orientare il flusso di programma attraverso l’utilizzo del costrutto switch.
Attraverso lo switch viene presa in esame una data variabile e vengono definiti una serie di comportamenti (casistiche) a seconda che quesa abbia un determinato valore. La sintassi di switch è la secuente:
switch(variabile) {
case valore1:
istruzioni;
break;
case valore2:
istruzioni;
break;
...
case valoreN:
istruzioni;
break;
default:
istruzioni;
}
Come potete notare:
- il costrutto si apre con la parola switch seguita da una parentesi tonda al cui interno è specificata la variabile da valutare;
- vengono definiti una serie di casistiche attraverso la parola case seguita dai due punti (:) e poi da un possibile valore della variabile presa in esame;
- all’interno di ogni blocco case sono inserite delle istruzioni al termine delle quali deve essere inserito il comando break al fine di interrompere il flusso dello switch;
- l’ultimo blocco è contraddistinto dalla parola default seguita dai due punti (:) che definisce le istruzioni da eseguire qualora nessuno dei casi si sia verificato.
Come avrete capito si tratta di una sintassi che, in alcune circostanze, può essere usata in alternativa al classico if.
Vediamo un esempio:
// creo un oggetto data
var oggi = new Date();
// individuo il mese corrente
var mese = oggi.getMonth();
switch (mese) {
case 0:
alert("Gennaio");
break;
case 1:
alert("Febbraio");
break;
case 2:
alert("Marzo");
break;
case 3:
alert("Aprile");
break;
case 4:
alert("Maggio");
break;
case 5:
alert("Giugno");
break;
case 6:
alert("Luglio");
break;
case 7:
alert("Agosto");
break;
case 8:
alert("Settembre");
break;
case 9:
alert("Ottobre");
break;
case 10:
alert("Novembre");
break;
case 11:
alert("Dicembre");
break;
}
E’ evidente come un simile risultato si sarebbe potuto raggiungere anche utilizzando una serie di if ed else if. Evidentemente la scelta su quale sintassi utilizzare dipende esclusivamente dalle preferenze del programmatore.