Menu
Coddy logo textTech

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 escono automaticamente. Tuttavia, la parola chiave fallthrough modifica questo comportamento forzando l'esecuzione a continuare nel 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. Questo è diverso da linguaggi come C, dove devi usare break per impedire il passaggio al case successivo.

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", stamperà sia "Good job!" sia "Keep trying!" a causa dell'istruzione fallthrough. Questo ti consente 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 prioritari. 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" oppure "low".

La tua istruzione switch dovrebbe funzionare così:

  • Per "critical": stampa "CRITICAL: System shutdown imminent!" e prosegui con il messaggio di alta priorità
  • Per "high": stampa "HIGH: Immediate attention required!" e prosegui con il messaggio di media priorità
  • Per "medium": stampa "MEDIUM: Please review when possible"
  • Per "low": stampa "LOW: Informational only"

Usa la parola chiave fallthrough in modo che gli avvisi critici visualizzino sia i messaggi di priorità critica che quelli di alta priorità, e gli avvisi di alta priorità visualizzino sia i messaggi di alta priorità che quelli di media priorità.

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