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 exécutent normalement uniquement le case correspondant, puis se terminent automatiquement. Cependant, le mot-clé fallthrough modifie ce comportement en forçant l’exécution à continuer avec le case suivant, qu’il corresponde ou non.
Lorsque vous utilisez fallthrough à la fin d’un case, Go exécute le code du case suivant sans vérifier sa condition. Cela diffère des langages comme C, où vous devez utiliser break pour empêcher le passage au case 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 vaut "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.
Défi
FacileDans ce défi, tu vas t’exercer à utiliser le mot-clé fallthrough dans une instruction switch afin de créer un système d’alertes prioritaires. Lorsqu’une alerte de haute priorité est déclenchée, le système doit afficher plusieurs messages d’avertissement à la suite.
Tu recevras une chaîne de caractères représentant un niveau d’alerte. Crée une instruction switch qui gère les différents niveaux d’alerte et utilise fallthrough pour afficher des messages en cascade pour les alertes de priorité élevée.
L’entrée sera l’un de ces niveaux d’alerte : "critical", "high", "medium" ou "low".
Ton instruction switch doit fonctionner comme suit :
- Pour
"critical": afficher "CRITICAL: System shutdown imminent!" et continuer l’exécution pour afficher également le message de haute priorité - Pour
"high": afficher "HIGH: Immediate attention required!" et continuer l’exécution pour afficher également le message de priorité moyenne - Pour
"medium": afficher "MEDIUM: Please review when possible" - Pour
"low": afficher "LOW: Informational only"
Utilise le mot-clé fallthrough afin que les alertes critiques affichent les messages de priorité critique et élevée, et que les alertes élevées affichent les messages de priorité élevée et moyenne.
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éez une instruction switch avec fallthrough pour le système d'alerte
}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
1Structures de contrôle avancées
Switch avec `fallthrough`Sortir de boucles imbriquéesContinuer une boucle spécifiqueL'instruction `goto`Récapitulatif - Contrôle de boucle avancé4Projet : Liste de tâches simple
Configuration du projetAjouter une tâche2Structures et Méthodes
Définir des méthodes sur des structuresReceveurs par valeurReceveurs par pointeurChoisir les receveursMéthodes vs FonctionsRécapitulatif - Comportement des structures5Les Maps en profondeur
Maps de StructsPointeurs comme valeurs de MapTester les Maps NilComparer des MapsRécapitulatif - Compteur de fréquence de mots3Interfaces (Les bases)
Qu'est-ce qu'une Interface ?Définir une InterfaceImplémenter une InterfaceUtiliser les types d'InterfaceInterface videAssertions de typeType SwitchRécapitulatif - Formes et comportementsEntraînez-vous par vous-même : Compilateur Go en ligne