Choisir parmi des cas : switch
Brancher sur une valeur entière ou un caractère avec switch, case, break et default.
Ce que tu vas apprendre
- Écrire un
switchavec descaseet undefault - Comprendre le rôle de
break - Regrouper plusieurs valeurs sur le même traitement
La structure switch
switch (valeur) compare une valeur entière (ou un caractère) à une liste de constantes case. Le bloc default traite toutes les autres valeurs.
Chaque cas se termine par break;, qui sort du switch.
Regrouper des cas
Sans break, l'exécution continue dans le cas suivant. On s'en sert volontairement pour regrouper des valeurs : case 'a': case 'A': puis un seul traitement.
Un case ne peut contenir qu'une constante : pour des intervalles (x > 10), il faut des if.
Exemples commentés
1.Un petit menu
#include <stdio.h>
int main(void) {
int choix;
scanf("%d", &choix);
switch (choix) {
case 1:
printf("nouvelle partie\n");
break;
case 2:
printf("charger\n");
break;
case 3:
printf("quitter\n");
break;
default: // toute autre valeur
printf("choix inconnu\n");
}
return 0;
}Entrée
2
Sortie
charger
La valeur 2 mène au deuxième case ; break évite d'exécuter aussi « quitter ».
2.Tailles de vêtements
#include <stdio.h>
int main(void) {
char t;
scanf(" %c", &t);
switch (t) {
case 's':
case 'S': // deux valeurs, un seul traitement
printf("petit\n");
break;
case 'm':
case 'M':
printf("moyen\n");
break;
default:
printf("autre taille\n");
}
return 0;
}Entrée
m
Sortie
moyen
case 'm': n'a pas de break : l'exécution continue dans case 'M':.
Chaque exemple est compilé et exécuté automatiquement pour garantir la sortie affichée.
Erreurs fréquentes
Oublier un break
À éviter
case 1:
printf("un\n");
case 2:
printf("deux\n");À préférer
case 1:
printf("un\n");
break;
case 2:
printf("deux\n");
break;Sans break, la valeur 1 affiche « un » puis « deux ».
Vouloir un switch sur une chaîne
switch ne fonctionne qu'avec des entiers et des caractères. Pour comparer des mots, on utilise strcmp (module Chaînes) dans des if.
Entraîne-toi
6 questions variées pour fixer la leçon : choix, résultat à prévoir, ligne à compléter, code à remettre dans l'ordre, erreur à trouver.
À toi de jouer !
5 exercices pour mettre cette leçon en pratique, du plus simple au plus avancé.