Lo Switch – Corso JavaScript

In questa parte del corso JavaScript imparerai ad utilizzare una struttura di controllo generata tramite il comando “switch” per la verifica di condizioni multiple con una sintassi ridotta.

Nel precedente capitolo del corso, abbiamo spiegato l’uso delle strutture condizionali programmate tramite l’uso di “if“, “else” e “else if“, che consentono di proseguire uno script nel caso una determinata condizione sia stata soddisfatta, restituendo un valore specifico.

Questi metodi permettono di definire in modo specifico molte condizioni ripetendo lo stesso codice più volte quante ne servono.

Purtroppo però, l’utilizzo di “if” e “else” per programmare strutture lunghe è sconsigliato, perché tende ad aumentare la quantità di codice e a creare più confusione, rendendo il tutto più difficile da gestire.

Se abbiamo bisogno di stilare 4 o più condizioni, possiamo fare affidamento a metodi di maggior efficacia come lo “switch“, che andremo a descrivere qui di seguito.

Lo switch in JavaScript

Descrizione

La migliore soluzione per la scrittura di condizioni multiple, lo “switch” è usato per ottimizzare il codice sintetizzando in poche righe quello che potremmo scrivere usando i comuni “if” e “else“.

Lo switch adotta una struttura differente, divisa per casi, che continua a verificare finché la condizione non è soddisfatta.

Il metodo viene eseguito una sola volta nello script, verificando i casi e continuando fino alla chiusura senza interruzioni, sia che i casi siano true o false.

Gli stessi risultati possono essere ottenuti usando “if” e “else” multipli, ma “switch” è più efficiente ed ottimizzato.

Vediamo un esempio:

var stagione = 2;
switch(stagione) {
    case 1:
      document.write("Primavera");
      break;
    case 2:
      document.write("Estate");
      break;
    case 3:
      document.write("Autunno");
      break;
    case 4:
      document.write("Inverno");
}

// Estate

Puoi vedere la differenza con if” e “else” leggendo l’articolo precedente, con un esempio simile.

Esaminiamo il codice:

  • Dopo la keyword “Switch” si apre un’espressione tra le parentesi tonde, che restituisce un valore preciso (2 in questo caso, tratto dalla variabilestagione“).
  • I casi elencati sono 4, ed ognuno indica una stagione specifica dell’anno.
  • Essendo la variabile stagione uguale a “2”, esso corrisponderà al caso “2” restituendo la stringa “Estate” come output.
  • Ogni caso (escluso l’ultimo) viene chiuso con la keyword “break” che vedremo tra poco.

Concludendo, possiamo notare subito che la struttura dello switch è molto ordinata, contiene poche righe di codice per caso ed è di facile lettura.

Break

Letteralmente “interruzione”. Break è una keyword che serve a bloccare l’esecuzione dello script dopo che la condizione venga soddisfatta. Per evitare che il software continui a eseguire il codice dopo aver verificato un caso, bisogna scrivere “break;” nell’ultima riga.

Unica eccezione fatta per l’ultimo caso della lista, che essendo questo a chiudere lo script non ha bisogno di possedere tale blocco (Non fa differenza).

Questo comando va usato la maggior parte delle volte, per evitare spiacevoli risultati.

Prendendo ad esempio il codice precedente, invece che “Estate“, l’output senza break sarebbe stato “EstateAutunnoInverno“.

Default

Se nessuno dei casi presenti siano soddisfacenti, il software non restituirà alcun valore. Per fare in modo che in qualsiasi caso ci sia un risultato, dovremo fare uso della keyword “default” al posto di “case“.

Questo farà sì che in qualsiasi situazione il programma ci dia una risposta con il valore di default.

Vediamo con un esempio:

  var meteo = 's';
  switch(meteo) {
    case 'n': 
      document.write("Nebbia");
      break;
    case "p": 
      document.write("Pioggia");
      break;
    default :
      document.write("Sole");
     }

// Sole

Se al posto di “s” nella variabile “meteo” ci fosse stato qualunque altro valore diverso da “n” e “p“, l’output sarebbe sempre “Sole“.

L’uso della keyword “default” non è obbligatorio.

Sintassi

La sintassi corretta da utilizzare per programmare uno switch è la seguente:

  switch (espressione) {
    case 'a1': 
       codice;
      break;
    case 'b2': 
       codice;
      break;
    case 'c3':
       codice;
      break;
    case 'd4': 
       codice;
      break;
...
    default:
       codice;
   }

Nel campo “espressione” sarà presente un valore utile di partenza, con cui verrà eseguito lo switch. Esso può essere una variabile, una stringa, un numero e così via.

Il numero di casi sono illimitati, e ad ognuno di essi è possibile assegnare un valore che dovrà essere univoco (case 1, case ‘a’, case ‘x’, case ‘mario’, case ‘lunedì’, etc…). Nel caso delle stringhe è d’obbligo inserirle negli apici (‘..’) o virgolette (“..”).

Seguono poi gli script, o codici, che dovranno essere eseguiti dal software quando uno dei casi sia soddisfatto. Il tutto termina con brake.

Ricorda la punteggiatura: I casi si aprono un blocco di codice con i due punti (:), questi invece terminano con il classico punto e virgola (;).

Un altro esempio pratico con i giorni della settimana:

  var g;
switch (new Date().getDay()) {
  case 0:
    g = "Domenica";
  case 1:
    g = "Lunedì";
    break;
  case 2:
    g = "Martedì";
    break;
  case 3:
     g = "Mercoledì";
    break;
  case 4:
    g = "Giovedì";
    break;
  case 5:
    g = "Venerdì";
    break;
  case 6:
    g = "Sabato";
    break;
 }
   document.write("Output: Oggi è "+ g);

JavaScript inizia il conto partendo dal numero 0 (0,1,2,3,4,5…..), così come i giorni della settimana iniziano da Domenica.
Quindi il primo giorno della settimana è Domenica e si indica con il numero 0 (zero).

Spesso lo “switch” è associato agli “array” in JavaScript, per gestire una quantità di dati più elevata. Inizia ora a fare pratica con lo “switch” ed impara ad usarlo al meglio.

Torna al programma del corso JavaScript

Iscriviti alla nostra Newsletter qui e seguici su Facebook per aggiornamenti!


Articoli recenti:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

CAPTCHA