formazione-javascript

L’istruzione “switch”

In JavaScript, l’istruzione switch viene utilizzata per eseguire un blocco di codice diverso in base al valore di una variabile. L’istruzione switch è simile a una serie di istruzioni if...else if...else, ma è più leggibile e concisa quando si devono gestire più casi.

Sintassi

La sintassi dell’istruzione switch è la seguente:

switch (espressione) {
  case valore1:
    // blocco di codice
    break;
  case valore2:
    // blocco di codice
    break;
  case valore3:
    // blocco di codice
    break;
  default:
    // blocco di codice
}

Esempio

let a = 2 + 2;

switch (a) {
  case 3:
    alert( 'Too small' );
    break;
  case 4:
    alert( 'Exactly!' );
    break;
  case 5:
    alert( 'Too big' );
    break;
  default:
    alert( "I don't know such values" );
}

Qui lo switch inizia confrontando a con il primo case, il cui valore è 3. Non vi è corrispondenza. Poi valuta 4. C’è una corrispondenza, quindi l’esecuzione inizia da case 4 fino al break più vicino. Se non c’è nessun break l’esecuzione procede al prossimo case.

Raggruppare i casi

Spesso è necessario eseguire lo stesso blocco di codice per più casi. In questo caso, è possibile raggruppare i casi e omettere i break tra di essi. Ecco un esempio:

let a = 2 + 2;

switch (a) {
  case 4:
    alert('Right!');
    break;

  case 3: // (*) raggruppamento dei casi
  case 5:
    alert('Wrong!');
    alert("Why don't you take a math class?");
    break;

  default:
    alert('The result is strange. Really.');
}

In questo esempio, se a è 3 o 5, verrà visualizzato un messaggio “Wrong!” e “Why don’t you take a math class?”. Se a è 4, verrà visualizzato un messaggio “Right!”. In tutti gli altri casi, verrà visualizzato un messaggio “The result is strange. Really.”.

Valori con espressioni

Gli case possono contenere espressioni arbitrarie di JavaScript. Ad esempio:

let a = 2 + 2;

switch (a) {
  case 1 + 3:
    alert("This works too!");
    break;
  case 2 * 2:
    alert("Also this!");
    break;
  default:
    alert("Not matched.");
}

In questo esempio, l’espressione 2 + 2 viene valutata e assegnata a a, quindi a vale 4.

Lo switch confronta a con ogni valore nei case:

Questo dimostra che nei case è possibile usare espressioni, non solo valori statici.

Conclusioni

L’istruzione switch è utile quando si devono gestire più casi in modo più leggibile e conciso rispetto a una serie di istruzioni if...else if...else. È possibile utilizzare case per confrontare valori o espressioni e default per gestire i casi non corrispondenti.

By Maurizio Tolomeo

HOMEPAGE LEZIONE SUCCESSIVA