Menu
Coddy logo textTech

Istruzione switch

Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 32 di 71.

Quando devi confrontare una singola variabile con molti valori specifici, l'istruzione switch offre un'alternativa più chiara alle lunghe catene di if-elseif.

L'istruzione switch controlla una variabile una volta e poi la confronta con diversi valori case:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
    default:
        echo "Regular day";
}
?>

PHP confronta $day con ogni caso. Quando trova una corrispondenza, esegue il codice di quel blocco.

L'istruzione break è fondamentale. Dice a PHP di uscire dallo switch dopo aver eseguito il case corrispondente. Senza di essa, PHP continuerebbe a eseguire tutto il codice sottostante, anche quello degli altri case.

Nota come sabato e domenica condividano lo stesso codice raggruppando i casi. Il caso default funziona come un else. Viene eseguito quando nessun altro caso corrisponde.

<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Excellent!";
        break;
    case "B":
        echo "Good job!";
        break;
    default:
        echo "Keep trying!";
}
?>

Usa switch quando confronti una variabile con più valori esatti. Per condizioni complesse o intervalli, attieniti alle istruzioni if-elseif.

challenge icon

Sfida

Facile

Leggi una stringa command dall'input che rappresenta il colore di un semaforo.

Usa un'istruzione switch per determinare l'azione appropriata in base al colore:

  • Se il comando è red, stampa Stop
  • Se il comando è yellow, stampa Slow down
  • Se il comando è green, stampa Go
  • Se il comando è flashing red o flashing yellow, stampa Proceed with caution
  • Per qualsiasi altro valore, stampa Invalid signal

Esempio:

Se l'input è green, l'output dovrebbe essere:

Go

Se l'input è flashing red, l'output dovrebbe essere:

Proceed with caution

Se l'input è blue, l'output dovrebbe essere:

Invalid signal

Provalo tu

<?php
// Leggi l'input
$command = trim(fgets(STDIN));

// TODO: Scrivi il tuo codice qui sotto usando un'istruzione switch
// Determina l'azione appropriata in base al colore del semaforo


?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore PHP online