Guide de l'instruction switch en C : Un guide pour les débutants
Salut à toi, futurs programmeurs ! Aujourd'hui, nous allons plonger dans l'une des structures de contrôle les plus utiles en programmation C : l'instruction switch. Ne t'inquiète pas si c'est nouveau pour toi ; je vais te guider pas à pas, comme j'ai fait pour des centaines d'étudiants au fil des ans. Alors, prends une tasse de ta boisson favorite et partons ensemble dans cette aventure de programmation !
Qu'est-ce qu'une instruction switch-case ?
Imaginons que tu es dans un glacier et que tu dois choisir un parfum. Tu as vanille, chocolat, fraise et menthe. Chaque choix mène à une différentes boules dans ton cornet. C'est exactement comme fonctionne l'instruction switch en programmation !
Une instruction switch est une instruction de flux de contrôle qui permet d'exécuter différents blocs de code en fonction de la valeur d'une variable ou d'une expression. C'est comme une version plus élégante et efficace de multiples instructions if-else.
Syntaxe de l'instruction switch-case
Jetons un coup d'œil à la structure de base d'une instruction switch :
switch (expression) {
case constant1:
// code à exécuter si l'expression est égale à constant1
break;
case constant2:
// code à exécuter si l'expression est égale à constant2
break;
...
default:
// code à exécuter si l'expression ne correspond à aucune constante
}
Ne t'inquiète pas si cela semble un peu intimidant au début. Nous allons le décomposer morceau par morceau.
Composants Clés :
-
switch
: Ce mot-clé initialise l'instruction switch. -
expression
: C'est la valeur qui est évaluée. -
case
: Chaque cas représente une valeur possible de l'expression. -
break
: Ce mot-clé termine chaque bloc de cas. -
default
: C'est un bloc optionnel qui s'exécute si aucun cas ne correspond.
Fonctionnement de l'instruction switch-case
Maintenant, voyons comment cela fonctionne en pratique. Imaginons que nous créons un programme simple qui donne un message en fonction de la note d'un étudiant :
#include <stdio.h>
int main() {
char grade = 'B';
switch(grade) {
case 'A':
printf("Excellent !");
break;
case 'B':
printf("Bien joué !");
break;
case 'C':
printf("Bon travail !");
break;
case 'D':
printf("Tu as passé.");
break;
case 'F':
printf("Plus de chance la prochaine fois.");
break;
default:
printf("Note invalide");
}
return 0;
}
Dans cet exemple :
- Nous avons une variable
grade
définie à 'B'. - L'instruction switch évalue
grade
. - Il vérifie chaque cas jusqu'à ce qu'il trouve une correspondance ('B' dans ce cas).
- Lorsqu'il trouve une correspondance, il exécute le code dans ce cas ("Bien joué !").
- L'instruction
break
quitte alors le bloc switch.
Si grade
ne correspondait à aucun cas, le bloc default
serait exécuté.
Diagramme de flux de l'instruction switch-case
Pour visualiser comment fonctionne une instruction switch, regardons un diagramme de flux :
+-------------+
| Début |
+-------------+
|
v
+-------------------+
| Évaluer l'expression|
+-------------------+
|
v
+----------------------+
| Comparer avec cas 1 |
+----------------------+
|
v
+-------------+
| Correspond ? |
+-------------+
Oui | | Non
| |
v v
+-----------------+ +----------------------+
| Exécuter cas 1 | | Comparer avec cas 2 |
+-----------------+ +----------------------+
| |
v v
+-----------+ +-------------+
| Break | | Correspond ? |
+-----------+ +-------------+
| Oui | | Non
| | |
| v v
| +-----------------+ +------------+
| | Exécuter cas 2 | | ... |
| +-----------------+ +------------+
| |
| v
| +-----------+
| | Break |
| +-----------+
| |
v v
+-----------+ +-----------+
| Fin | <------| Default |
+-----------+ +-----------+
Ce diagramme de flux montre comment l'instruction switch évalue chaque cas et exécute le bloc de code correspondant.
Règles pour utiliser l'instruction switch-case
Pour utiliser les instructions switch efficacement, garde ces règles à l'esprit :
Règle | Description |
---|---|
Type d'expression | L'expression switch doit être d'un type entier (int, char, etc.) ou d'un type énuméré. |
Constantes des cas | Les étiquettes de cas doivent être des constantes ou des valeurs littérales, pas des variables. |
Cas uniques | Chaque valeur de cas doit être unique dans une instruction switch. |
Instruction break
|
Utilise break pour quitter le bloc switch après l'exécution d'un cas. |
Cas default
|
Le cas default est optionnel et peut apparaître n'importe où dans le bloc switch. |
Plus d'exemples d'instructions switch-case
Jetons un coup d'œil à quelques autres exemples pour solidifier notre compréhension.
Exemple 1 : Jours de la semaine
#include <stdio.h>
int main() {
int day = 4;
switch(day) {
case 1:
printf("Lundi");
break;
case 2:
printf("Mardi");
break;
case 3:
printf("Mercredi");
break;
case 4:
printf("Jeudi");
break;
case 5:
printf("Vendredi");
break;
case 6:
printf("Samedi");
break;
case 7:
printf("Dimanche");
break;
default:
printf("Numéro de jour invalide");
}
return 0;
}
Ce programme affichera "Jeudi" car day
est défini à 4.
Exemple 2 : Calculatrice
#include <stdio.h>
int main() {
char operator;
double n1, n2;
printf("Entrez un opérateur (+, -, *, /) : ");
scanf("%c", &operator);
printf("Entrez deux opérandes : ");
scanf("%lf %lf", &n1, &n2);
switch(operator)
{
case '+':
printf("%.1lf + %.1lf = %.1lf", n1, n2, n1+n2);
break;
case '-':
printf("%.1lf - %.1lf = %.1lf", n1, n2, n1-n2);
break;
case '*':
printf("%.1lf * %.1lf = %.1lf", n1, n2, n1*n2);
break;
case '/':
printf("%.1lf / %.1lf = %.1lf", n1, n2, n1/n2);
break;
default:
printf("Erreur ! Opérateur incorrect");
}
return 0;
}
Ce programme crée une simple calculatrice utilisant une instruction switch.
Instructions switch en combinant plusieurs cas
Parfois, vous pourriez vouloir que plusieurs cas exécutent le même code. Vous pouvez faire cela en listant les cas ensemble :
#include <stdio.h>
int main() {
char grade = 'B';
switch(grade) {
case 'A':
case 'B':
case 'C':
printf("Tu as passé !");
break;
case 'D':
case 'F':
printf("Tu dois t'améliorer.");
break;
default:
printf("Note invalide");
}
return 0;
}
Dans cet exemple, les grades A, B et C entraînent tous "Tu as passé !", tandis que D et F entraînent "Tu dois t'améliorer."
Et voilà ! Tu viens d'apprendre l'instruction switch en C. Souviens-toi, la pratique rend parfait. Essaie d'écrire tes propres instructions switch et expérimente avec différents scénarios. Avant de te rendre compte, tu seras un expert en switch !
Bonne programmation, et puisses tes switches toujours trouver leur bon cas !
Credits: Image by storyset