Menu
Coddy logo textTech

Switch avec `fallthrough`

Fait partie de la section Logique & Flux du Journey GO de Coddy — leçon 1 sur 68.

En Go, les instructions switch n'exécutent normalement que le cas correspondant, puis se terminent automatiquement. Cependant, le mot-clé fallthrough modifie ce comportement en forçant l'exécution à continuer vers le cas suivant, qu'il corresponde ou non.

Lorsque vous utilisez fallthrough à la fin d'un cas, Go exécutera le code du cas suivant sans vérifier sa condition. Ceci est différent de langages comme le C où vous avez besoin de break pour empêcher le passage au cas suivant.

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

Dans cet exemple, si grade est "B", il affichera à la fois "Good job!" et "Keep trying!" en raison de l'instruction fallthrough. Cela vous permet d'exécuter plusieurs actions liées pour un seul cas correspondant.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

challenge icon

Défi

Facile

Dans ce défi, vous allez vous entraîner à utiliser le mot-clé fallthrough dans une instruction switch pour créer un système d'alerte de priorité. Lorsqu'une alerte de haute priorité est déclenchée, le système doit afficher plusieurs messages d'avertissement à la suite.

Vous recevrez une chaîne de caractères en entrée représentant un niveau d'alerte. Créez une instruction switch qui gère différents niveaux d'alerte et utilise fallthrough pour afficher des messages en cascade pour les alertes de priorité supérieure.

L'entrée sera l'un de ces niveaux d'alerte : "critical", "high", "medium", ou "low".

Votre instruction switch doit fonctionner comme suit :

  • Pour "critical" : Affichez "CRITICAL: System shutdown imminent!" et utilisez fallthrough pour afficher également le message de haute priorité
  • Pour "high" : Affichez "HIGH: Immediate attention required!" et utilisez fallthrough pour afficher également le message de priorité moyenne
  • Pour "medium" : Affichez "MEDIUM: Please review when possible"
  • Pour "low" : Affichez "LOW: Informational only"

Utilisez le mot-clé fallthrough pour que les alertes critiques affichent à la fois les messages de priorité critique et de haute priorité, et que les alertes de haute priorité affichent à la fois les messages de haute priorité et de priorité moyenne.

Aide-mémoire

Le mot-clé fallthrough dans les instructions switch de Go force l'exécution à continuer vers le cas suivant sans vérifier sa condition :

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

Lorsque grade est "B", cela affichera à la fois "Good job!" et "Keep trying!" en raison de l'instruction fallthrough. Contrairement à des langages comme le C, les instructions switch de Go s'arrêtent automatiquement après un cas correspondant, à moins que fallthrough ne soit utilisé.

Essayez vous-même

package main

import "fmt"

func main() {
    // Lire l'entrée
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Écrivez votre code ci-dessous
    // Créer une instruction switch avec fallthrough pour le système d'alerte
    
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux