Menu
CoddyTech

Switch con `fallthrough`

Fa parte della sezione Logica e flusso del percorso GO di Coddy. Lezione 1 di 68.

In Go, le istruzioni switch eseguono normalmente solo il case corrispondente e poi terminano automaticamente. Tuttavia, la parola chiave fallthrough modifica questo comportamento forzando l'esecuzione a continuare con il case successivo, indipendentemente dal fatto che corrisponda o meno.

Quando usi fallthrough alla fine di un case, Go eseguirà il codice del case successivo senza verificarne la condizione. È diverso da linguaggi come C, dove devi usare break per impedire il fall-through.

grade := "B"
switch grade {
case "A":
    fmt.Println("Excellent!")
    fallthrough
case "B":
    fmt.Println("Good job!")
    fallthrough
case "C":
    fmt.Println("Keep trying!")
}

In questo esempio, se grade è "B", verranno stampati sia "Good job!" sia "Keep trying!" a causa dell'istruzione fallthrough. Questo ti permette di eseguire più azioni correlate per un singolo caso corrispondente.

challenge icon

Sfida

Facile

In questa sfida, ti eserciterai a usare la parola chiave fallthrough in un'istruzione switch per creare un sistema di avvisi con priorità. Quando viene attivato un avviso ad alta priorità, il sistema dovrebbe visualizzare più messaggi di avviso in sequenza.

Riceverai una stringa in input che rappresenta un livello di avviso. Crea un'istruzione switch che gestisca i diversi livelli di avviso e usi fallthrough per visualizzare messaggi a cascata per gli avvisi con priorità più alta.

L'input sarà uno di questi livelli di avviso: "critical", "high", "medium" o "low".

La tua istruzione switch dovrebbe funzionare così:

  • Per "critical": stampa "CRITICAL: System shutdown imminent!" e passa al caso high (che a sua volta passa a medium)
  • Per "high": stampa "HIGH: Immediate attention required!" e passa alla stampa del messaggio di priorità medium
  • Per "medium": stampa "MEDIUM: Please review when possible"
  • Per "low": stampa "LOW: Informational only"

Poiché fallthrough crea una catena, un avviso "critical" stampa tre righe (CRITICAL, HIGH, MEDIUM), un avviso "high" ne stampa due (HIGH, MEDIUM) e "medium" e "low" ne stampano una ciascuno.

Provalo tu

package main

import "fmt"

func main() {
    // Leggi l'input
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Scrivi il tuo codice qui sotto
    // Crea un'istruzione switch con fallthrough per il sistema di allerta
    
}
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 Logica e flusso

Esercitati da solo: Compilatore Go online