Maîtriser l'instruction switch en C : Syntaxe, flux et exemple pratique
Maîtriser l'instruction switch en C
Dans ce tutoriel, vous découvrirez comment créer une instruction switch propre et efficace en C, complète avec un exemple de calculatrice pratique.
La construction switch vous permet d'exécuter un bloc de code parmi plusieurs alternatives. Bien que vous puissiez utiliser une chaîne if…else if, switch offre une syntaxe plus claire et une lecture plus rapide, surtout quand la décision repose sur une seule expression.
Syntaxe Switch-Case
switch (expression) {
case constante1:
// instructions
break;
case constante2:
// instructions
break;
/* … */
default:
// instructions par défaut
}
Comment ça marche
- L'expression est évaluée une fois et comparée à chaque étiquette case.
- Quand une correspondance est trouvée, le bloc correspondant s'exécute jusqu'à un
break(ou la fin duswitch). - Si aucune correspondance ne se produit, le bloc
defaultoptionnel s'exécute.
Points clés
- Omettre
breakcause une "chute" (fall-through) : les cases suivantes s'exécutent aussi. - La clause
defaultest optionnelle mais fortement recommandée pour la gestion d'erreurs.
Diagramme de flux de l'instruction switch

Exemple : Calculatrice simple
#include <stdio.h>
int main(void) {
char operation;
double n1, n2;
printf("Entrez un opérateur (+, -, *, /) : ");
scanf("%c", &operation);
printf("Entrez deux opérandes : ");
scanf("%lf %lf", &n1, &n2);
switch (operation) {
case '+':
printf("%.1lf + %.1lf = %.1lf\n", n1, n2, n1 + n2);
break;
case '-':
printf("%.1lf - %.1lf = %.1lf\n", n1, n2, n1 - n2);
break;
case '*':
printf("%.1lf * %.1lf = %.1lf\n", n1, n2, n1 * n2);
break;
case '/':
printf("%.1lf / %.1lf = %.1lf\n", n1, n2, n1 / n2);
break;
default:
printf("Erreur ! l'opérateur n'est pas correct\n");
}
return 0;
}
Exemple de sortie
Entrez un opérateur (+, -, *, /): - Entrez deux opérandes: 32.5 12.4 32.5 - 12.4 = 20.1
Quand l'utilisateur entre -, le programme saute au case correspondant, effectue la soustraction, et le break sort du switch. Si l'opérateur est invalide, la clause default alerte l'utilisateur.
Bonnes pratiques
- Toujours inclure un cas
defaultpour gérer les entrées inattendues. - Utiliser
breakpour éviter les fall-through non intentionnels. - Grouper les cas multiples quand ils partagent la même logique :
case 'a': case 'A': - Pour les chaînes de caractères, préférez
if-elsecarswitchne fonctionne qu'avec des types entiers.
Langue C
- Circuit avec interrupteur : guide pratique des circuits électriques de base
- Expérience sur la diode de roue libre : Suppression du retour inductif avec une lampe néon
- Comprendre les interrupteurs électriques : types, fonctions et applications
- Élimination des rebonds de contacts dans les interrupteurs mécaniques
- Maîtriser l'instruction Switch C# : Syntaxe, exemples et bonnes pratiques
- Instruction Break C# : Comment et quand l'utiliser
- Maîtriser l'instruction Continue C# : Comment ignorer efficacement les itérations de boucle
- Maîtriser le switch-case en C++ : Syntaxe, utilisation et exemples pratiques
- Maîtriser la syntaxe de base du C : Jetons, structure et points-virgules