`switch` sans expression
Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 41 sur 109.
En Go, nous pouvons utiliser une instruction switch sans expression après le mot-clé. C'est utile lorsque nous voulons évaluer plusieurs conditions de manière propre.
Créons un programme qui catégorise une personne en fonction de son âge :
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}Après l'exécution de ce code, le programme vérifiera chaque condition de cas dans l'ordre. Comme notre âge est 25, il n'est pas inférieur à 13 ou 20, mais il est inférieur à 30, donc le troisième cas correspond. Le texte « Young Adult » s'affichera à l'écran :
Young AdultRemarquez que sans expression après switch, chaque case devient une condition booléenne qui s'évalue soit à true soit à false. Le premier case qui s'évalue à true exécutera son bloc de code.
Si aucun des cas ne correspond, le cas default s'exécuterait. Dans notre exemple, si age était 35, la sortie serait « Adult ».
Défi
FacileDans ce défi, vous allez vous entraîner à utiliser une instruction switch sans expression. Ce type de switch est utile lorsque vous souhaitez évaluer plusieurs conditions sans répéter des instructions if-else.
Nous avons fourni une variable timeOfDay qui représente l'heure actuelle (au format 24 heures). Votre tâche consiste à compléter l'instruction switch sans expression pour afficher une salutation appropriée en fonction de l'heure de la journée.
Aide-mémoire
Une instruction switch sans expression vous permet d'évaluer plusieurs conditions de manière propre :
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}Chaque cas devient une condition booléenne qui s'évalue à true ou false. Le premier cas qui s'évalue à true exécute son bloc de code. Si aucun cas ne correspond, le cas default s'exécute.
Essayez vous-même
package main
import "fmt"
func main() {
// Cela représente l'heure actuelle au format 24 heures (0-23)
timeOfDay := 14 // C'est 14h00
// TODO: Compléter l'instruction switch sans expression
// pour afficher la salutation appropriée en fonction de l'heure de la journée
switch {
// Ajoutez vos cas ici
default:
fmt.Println("Hello!")
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs de comparaison et logiques
Opérateurs de comparaison - Partie 1Opérateurs de comparaison - Partie 2Opérateur logique ANDOpérateur logique OROpérateur logique NOTBases de la priorité des opérateursRécapitulatif - Effectuer des comparaisons7Structures de contrôle : Les boucles
Explication de la boucle `for`Boucle For - Les basesBoucle For - Condition uniquementLe mot-clé `break`Le mot-clé `continue`Boucles imbriquéesRécapitulatif - Répéter des actions2Variables et types de données de base
Qu'est-ce qu'une variableInférence de type avec `:=` Entiers (int)Nombres à virgule flottanteBooléensChaînes de caractères (Strings)Valeurs zéroConstantesConventions de nommageRécapitulatif - Variables et types5Entrées/Sorties de base
Sortie formatéeVerbes de formatageAffichage des typesSaisie utilisateur de baseRécapitulatif - Entrées et Sorties8Fonctions
Comprendre les fonctionsDéclarer une fonctionAppeler des fonctionsParamètres de fonctionRetourner une valeur uniqueRetourner plusieurs valeursValeurs de retour nomméesBases de la portée des fonctionsRécapitulatif - Créer du code réutilisable11Types composites : Slices
Introduction aux SlicesDéclaration de littéraux de SlicesCréation de Slices avec `make`Longueur vs Capacité des SlicesAccès aux éléments d'un SliceAjout d'élémentsDécoupage de Slices/Tableaux existantsItération sur les SlicesCopie de SlicesRécapitulatif - Listes dynamiques3Opérateurs de base
Opérateurs arithmétiquesOpérateur de divisionL'opérateur moduloOpérateur d'affectationOpérateurs d'affectation augmentéeIncrémentation et décrémentationRécapitulatif - Calculs6Structure de contrôle : Les conditionnelles
L'instruction `if`Le mot-clé `else`Le mot-clé `else if`Masquage de variable dans `if`Initialisation des variablesL'instruction `switch``switch` avec expressions`switch` sans expressionLe mot-clé `fallthrough`Récapitulatif - Prendre des décisions9Pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de variables pointeursL'opérateur d'adresseDéréférencement de pointeursUtiliser des pointeurs dans les fonctionsPointeurs NilRécapitulatif - Comprendre les pointeurs12Types composites : Maps
Introduction aux MapsDéclaration de littéraux de MapCréation de Maps avec `make`Ajout et mise à jour de paires clé-valeurAccès aux valeurs d'une MapVérification de l'existence d'une cléSuppression d'entrées de MapTaille d'une MapItération sur les MapsRécapitulatif - Stockage clé-valeur