back to top

Javascript Switch

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.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).