Instructions conditionnelles en C++ : if, else if, switch
Apprenez les instructions conditionnelles en C++ avec if, else if et switch pour contrôler le flux du programme.
Dans les programmes C++, les instructions conditionnelles sont utilisées pour exécuter différents blocs de code selon une condition.
Elles contrôlent le flux du programme et constituent le mécanisme de prise de décision.
Cet article explique, à l’aide d’exemples, le fonctionnement des structures if, else if, else et switch.
1. Instruction if
L’instruction if exécute le bloc de code qui suit si la condition donnée est true (vraie).
Si la condition est false (fausse), le bloc est ignoré.
#include <iostream>
using namespace std;
int main() {
int age = 18;
if (age >= 18) {
cout << "Vous êtes majeur." << endl;
}
return 0;
}
Dans cet exemple, si age >= 18 est vrai, le programme affiche « Vous êtes majeur. ».
Si la condition n’est pas remplie (par exemple age = 16), rien n’est affiché.
2. Structure if – else
La structure if – else permet d’exécuter une action lorsque la condition est vraie et une autre lorsqu’elle est fausse.
int age = 16;
if (age >= 18) {
cout << "Vous êtes majeur." << endl;
} else {
cout << "Vous n'êtes pas encore majeur." << endl;
}
Ici, lorsque la condition est fausse, le second bloc (else) est exécuté.
3. Chaîne if – else if – else
Pour tester plusieurs conditions successivement, on peut utiliser une chaîne else if.
Le programme exécute le premier bloc dont la condition est vraie, puis s’arrête.
#include <iostream>
using namespace std;
int main() {
int note = 75;
if (note >= 90) {
cout << "Note : AA" << endl;
} else if (note >= 80) {
cout << "Note : BA" << endl;
} else if (note >= 70) {
cout << "Note : BB" << endl;
} else if (note >= 60) {
cout << "Note : CC" << endl;
} else {
cout << "Échec." << endl;
}
return 0;
}
Dans cet exemple, comme la note vaut 75, la troisième condition est vraie et affiche « Note : BB ».
4. Combiner plusieurs conditions
Dans les instructions if, plusieurs conditions peuvent être combinées à l’aide d’opérateurs logiques :
int age = 20;
bool aCarte = true;
if (age >= 18 && aCarte) {
cout << "Accès autorisé." << endl;
} else {
cout << "Accès refusé." << endl;
}
&&→ S’exécute si les deux conditions sont vraies.||→ S’exécute si au moins une des conditions est vraie.!→ Inverse la valeur logique de la condition.
5. Instruction switch
L’instruction switch exécute différents blocs de code selon la valeur d’une variable.
Elle est plus lisible qu’une série de if – else pour des valeurs fixes ou des menus.
#include <iostream>
using namespace std;
int main() {
int jour = 3;
switch (jour) {
case 1:
cout << "Lundi" << endl;
break;
case 2:
cout << "Mardi" << endl;
break;
case 3:
cout << "Mercredi" << endl;
break;
case 4:
cout << "Jeudi" << endl;
break;
case 5:
cout << "Vendredi" << endl;
break;
default:
cout << "Week-end !" << endl;
}
return 0;
}
Dans cet exemple, comme jour = 3, le programme exécute le bloc case 3
et affiche « Mercredi ».
6. Utilisation de break et default
- break : Permet de sortir du bloc
switchaprès l’exécution d’un cas. Si on l’ommet, le programme continue d’exécuter les cas suivants. - default : S’exécute lorsqu’aucun
casene correspond à la valeur.
Exemple :
int choix = 2;
switch (choix) {
case 1:
cout << "Option 1 choisie" << endl;
case 2:
cout << "Option 2 choisie" << endl;
default:
cout << "Bloc par défaut" << endl;
}
Comme il n’y a pas de break, le résultat sera :
Option 2 choisie
Bloc par défaut
Ce comportement s’appelle fall-through.
Il est généralement indésirable, donc il est recommandé d’ajouter break; à la fin de chaque bloc case.
7. Utilisation de switch avec des caractères ou des énumérations
La structure switch ne peut être utilisée qu’avec les types int, char ou enum.
Elle ne fonctionne pas avec double ou string.
char op = '+';
switch (op) {
case '+':
cout << "Opération d'addition" << endl;
break;
case '-':
cout << "Opération de soustraction" << endl;
break;
default:
cout << "Opération inconnue" << endl;
}
Ici, comme op est égal à '+', le programme affiche « Opération d'addition ».
8. Exemple pratique : Calculatrice simple
L’exemple suivant combine les structures if et switch pour effectuer une opération selon les données saisies par l’utilisateur.
#include <iostream>
using namespace std;
int main() {
double a, b;
char op;
cout << "Entrez le premier nombre : ";
cin >> a;
cout << "Entrez le deuxième nombre : ";
cin >> b;
cout << "Choisissez une opération (+, -, *, /) : ";
cin >> op;
switch (op) {
case '+':
cout << "Résultat : " << a + b << endl;
break;
case '-':
cout << "Résultat : " << a - b << endl;
break;
case '*':
cout << "Résultat : " << a * b << endl;
break;
case '/':
if (b != 0)
cout << "Résultat : " << a / b << endl;
else
cout << "Erreur : Division par zéro !" << endl;
break;
default:
cout << "Opération invalide." << endl;
}
return 0;
}
Ce programme lit deux nombres et une opération, calcule le résultat et vérifie également les erreurs comme la division par zéro.
9. TL;DR
if→ Exécute le bloc si la condition est vraie.else if→ Ajoute des conditions alternatives.else→ S’exécute si aucune condition n’est remplie.switch→ Plus clair pour plusieurs choix à valeur fixe.break→ Permet de sortir du bloc switch.- Combinez les conditions avec
&&,||et!. - Tous les exemples peuvent être exécutés dans Visual Studio 2022 ou GCC 11+.