Maîtriser les instructions conditionnelles C++ : if, if...else et if...else imbriqué expliqués
C++ if, if...else et if...else imbriqué
Dans ce tutoriel, nous apprendrons l'instruction if...else pour créer des programmes de prise de décision avec l'aide d'exemples.
En programmation informatique, nous utilisons l'instruction if...else pour exécuter un bloc de code sous certaines conditions et un autre bloc sous d'autres conditions.
Par exemple, assigner des notes (A, B, C) basées sur les notes obtenues par un étudiant.
- si le pourcentage est au-dessus de 90, assigner la note A
- si le pourcentage est au-dessus de 75, assigner la note B
- si le pourcentage est au-dessus de 65, assigner la note C
Il y a trois formes d'instructions if...else en C++.
ifinstructionif...elseinstructionif...else if...elseinstruction
Instruction if C++
La syntaxe de l'instruction if est :
if (condition) {
// corps de l'instruction if
}
L'instruction if évalue la condition à l'intérieur des parenthèses ( ).
- Si la
conditionévalue àtrue, le code à l'intérieur du corps deifest exécuté. - Si la
conditionévalue àfalse, le code à l'intérieur du corps deifest ignoré.
Note : Le code à l'intérieur de { } est le corps de l'instruction if.

Exemple 1 : Instruction if C++
// Programme pour afficher un nombre positif entré par l'utilisateur
// Si l'utilisateur entre un nombre négatif, il est ignoré
#include <iostream>
using namespace std;
int main() {
int nombre;
cout << "Entrez un entier : ";
cin >> nombre;
// vérifie si le nombre est positif
if (nombre > 0) {
cout << "Vous avez entré un entier positif : " << nombre << endl;
}
cout << "Cette instruction est toujours exécutée.";
return 0;
}
Sortie 1
Entrez un entier : 5 Vous avez entré un entier positif : 5 Cette instruction est toujours exécutée.
Quand l'utilisateur entre 5, la condition nombre > 0 est évaluée à true et l'instruction à l'intérieur du corps de if est exécutée.
Sortie 2
Entrez un nombre : -5 Cette instruction est toujours exécutée.
Quand l'utilisateur entre -5, la condition nombre > 0 est évaluée à false et l'instruction à l'intérieur du corps de if n'est pas exécutée.
C++ if...else
L'instruction if peut avoir une clause else optionnelle. Sa syntaxe est :
if (condition) {
// bloc de code si la condition est vraie
} else {
// bloc de code si la condition est fausse
}
L'instruction if..else évalue la condition à l'intérieur de la parenthèse.

Si la condition évalue true,
- le code à l'intérieur du corps de
ifest exécuté - le code à l'intérieur du corps de
elseest ignoré
Si la condition évalue false,
- le code à l'intérieur du corps de
elseest exécuté - le code à l'intérieur du corps de
ifest ignoré
Exemple 2 : Instruction if...else C++
// Programme pour vérifier si un entier est positif ou négatif
// Ce programme considère 0 comme un nombre positif
#include <iostream>
using namespace std;
int main() {
int nombre;
cout << "Entrez un entier : ";
cin >> nombre;
if (nombre >= 0) {
cout << "Vous avez entré un entier positif : " << nombre << endl;
} else {
cout << "Vous avez entré un entier négatif : " << nombre << endl;
}
cout << "Cette ligne est toujours affichée.";
return 0;
}
Sortie 1
Entrez un entier : 4 Vous avez entré un entier positif : 4. Cette ligne est toujours affichée.
Dans le programme ci-dessus, nous avons la condition nombre >= 0. Si nous entrons un nombre supérieur ou égal à 0, alors la condition évalue true.
Ici, nous entrons 4. Donc, la condition est true. Donc, l'instruction à l'intérieur du corps de if est exécutée.
Sortie 2
Entrez un entier : -4 Vous avez entré un entier négatif : -4. Cette ligne est toujours affichée.
Ici, nous entrons -4. Donc, la condition est false. Donc, l'instruction à l'intérieur du corps de else est exécutée.
C++ if...else...else if
L'instruction if...else est utilisée pour exécuter un bloc de code parmi deux alternatives. Cependant, si nous devons faire un choix entre plus de deux alternatives, nous utilisons l'instruction if...else if...else.
La syntaxe de l'instruction if...else if...else est :
if (condition1) {
// bloc de code 1
} else if (condition2) {
// bloc de code 2
} else {
// bloc de code 3
}
Ici,
- Si
condition1évalue àtrue, lebloc de code 1est exécuté. - Si
condition1évalue àfalse, alorscondition2est évaluée. - Si
condition2esttrue, lebloc de code 2est exécuté. - Si
condition2estfalse, lebloc de code 3est exécuté.

Note : Il peut y avoir plus d'une instruction else if mais seulement une instruction if et else.
Exemple 3 : C++ if...else...else if
// Programme pour vérifier si un entier est positif, négatif ou zéro
#include <iostream>
using namespace std;
int main() {
int nombre;
cout << "Entrez un entier : ";
cin >> nombre;
if (nombre > 0) {
cout << "Vous avez entré un entier positif : " << nombre << endl;
} else if (nombre < 0) {
cout << "Vous avez entré un entier négatif : " << nombre << endl;
} else {
cout << "Vous avez entré 0." << endl;
}
cout << "Cette ligne est toujours affichée.";
return 0;
}
Sortie 1
Entrez un entier : 1 Vous avez entré un entier positif : 1. Cette ligne est toujours affichée.
Sortie 2
Entrez un entier : -2 Vous avez entré un entier négatif : -2. Cette ligne est toujours affichée.
Sortie 3
Entrez un entier : 0 Vous avez entré 0. Cette ligne est toujours affichée.
Dans ce programme, nous prenons un nombre de l'utilisateur. Nous utilisons ensuite l'échelle if...else if...else pour vérifier si le nombre est positif, négatif ou zéro.
Si le nombre est plus grand que 0, le code à l'intérieur du bloc if est exécuté. Si le nombre est plus petit que 0, le code à l'intérieur du bloc else if est exécuté. Sinon, le code à l'intérieur du bloc else est exécuté.
C++ if...else imbriqué
Parfois, nous devons utiliser une instruction if à l'intérieur d'une autre instruction if. C'est ce qu'on appelle une instruction if imbriquée.
Considérez-le comme plusieurs couches d'instructions if. Il y a une première instruction if externe, et à l'intérieur se trouve une autre instruction if interne. Sa syntaxe est :
// instruction if externe
if (condition1) {
// instructions
// instruction if interne
if (condition2) {
// instructions
}
}
Notes :
- Nous pouvons ajouter des instructions
elseetelse ifà l'instructionifinterne selon les besoins. - L'instruction
ifinterne peut aussi être insérée à l'intérieur de l'elseouelse ifexterne (s'ils existent). - Nous pouvons imbriquer plusieurs couches d'instructions
if.
Exemple 4 : C++ if imbriqué
// Programme C++ pour trouver si un entier est positif, négatif ou zéro
// en utilisant des instructions if imbriquées
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Entrez un entier : ";
cin >> num;
// condition if externe
if (num != 0) {
// condition if interne
if (num > 0) {
cout << "Le nombre est positif." << endl;
}
// condition else interne
else {
cout << "Le nombre est négatif." << endl;
}
}
// condition else externe
else {
cout << "Le nombre est 0 et il n'est ni positif ni négatif." << endl;
}
cout << "Cette ligne est toujours affichée." << endl;
return 0;
}
Sortie 1
Entrez un entier : 35 Le nombre est positif. Cette ligne est toujours affichée.
Sortie 2
Entrez un entier : -35 Le nombre est négatif. Cette ligne est toujours affichée.
Sortie 3
Entrez un entier : 0 Le nombre est 0 et il n'est ni positif ni négatif. Cette ligne est toujours affichée.
Dans l'exemple ci-dessus,
- Nous prenons un entier en entrée de l'utilisateur et le stockons dans la variable num.
- Nous utilisons ensuite une instruction
if...elsepour vérifier si num n'est pas égal à0.- Si
true, alors l'instruction interneif...elseest exécutée. - Si
false, le code à l'intérieur de la condition externeelseest exécuté, ce qui affiche"Le nombre est 0 et il n'est ni positif ni négatif."
- Si
- L'instruction interne
if...elsevérifie si le nombre d'entrée est positif, c'est-à-dire si num est plus grand que 0.- Si
true, alors nous affichons une instruction disant que le nombre est positif. - Si
false, nous affichons que le nombre est négatif.
- Si
Note : Comme vous pouvez le voir, les if...else imbriqués compliquent votre logique. Si possible, vous devriez toujours essayer d'éviter les if...else imbriqués.
Corps de if...else avec une seule instruction
Si le corps de if...else n'a qu'une seule instruction, vous pouvez omettre { } dans le programme. Par exemple, vous pouvez remplacer
int nombre = 5;
if (nombre > 0) {
cout << "Le nombre est positif." << endl;
} else {
cout << "Le nombre est négatif." << endl;
}
par
int nombre = 5;
if (nombre > 0) cout << "Le nombre est positif." << endl;
else cout << "Le nombre est négatif." << endl;
La sortie des deux programmes sera la même.
Note : Bien qu'il ne soit pas nécessaire d'utiliser { } si le corps de if...else n'a qu'une seule instruction, utiliser { } rend votre code plus lisible.
Plus sur la prise de décision
Dans certaines situations, un opérateur ternaire peut remplacer une instruction if...else. Pour en savoir plus, visitez l'opérateur ternaire C++.
Si nous devons faire un choix entre plus d'une alternative basée sur une condition de test donnée, l'instruction switch peut être utilisée. Pour en savoir plus, visitez C++ switch.
Consultez ces exemples pour en apprendre davantage :
Programme C++ pour vérifier si un nombre est pair ou impair
Programme C++ pour vérifier si un caractère est une voyelle ou une consonne.
Programme C++ pour trouver le plus grand nombre parmi trois nombres
Langue C
- Classes et objets C++ : Guide pratique de la programmation orientée objet
- Maîtriser la gestion de mémoire en C++ : Utilisation experte de new et delete
- Maîtriser l'héritage C++ : Public, Protected et Private expliqués
- Fonctions amies et classes amies en C++ : Maîtriser le contrôle d'accès
- Instructions, indentation et commentaires en Python : Guide clair
- Maîtriser les classes imbriquées et internes en Java : types, exemples et bonnes pratiques
- Guide complet sur la date et l'heure en C++
- Maîtriser la surcharge en C++ : Fonctions et opérateurs expliqués
- Maîtriser les entrées/sorties fichier en C++ : Lecture et écriture avec fstream