C++ if, if...else et Nested if...else
C++ if, if...else et Nested if...else
Dans ce didacticiel, nous allons découvrir l'instruction if...else pour créer des programmes de prise de décision à l'aide d'exemples.
En programmation informatique, on utilise le if...else
pour exécuter un bloc de code dans certaines conditions et un autre bloc de code dans des conditions différentes.
Par exemple, attribuer des notes (A, B, C) en fonction des notes obtenues par un étudiant.
- si le pourcentage est supérieur à 90 , attribuer la note A
- si le pourcentage est supérieur à 75 , attribuer la note B
- si le pourcentage est supérieur à 65 , attribuer la note C
Il existe trois formes de if...else
instructions en C++.
if
déclarationif...else
déclarationif...else if...else
déclaration
Instruction if C++
La syntaxe du if
déclaration est :
if (condition) {
// body of if statement
}
Le if
instruction évalue le condition
entre parenthèses ( )
.
- Si le
condition
évalue àtrue
, le code à l'intérieur du corps deif
est exécuté. - Si le
condition
évalue àfalse
, le code à l'intérieur du corps deif
est ignoré.
Remarque : Le code à l'intérieur de { }
est le corps du if
déclaration.
Exemple 1 :C++ if Statement
// Program to print positive number entered by the user
// If the user enters a negative number, it is skipped
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
// checks if the number is positive
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
cout << "This statement is always executed.";
return 0;
}
Sortie 1
Enter an integer: 5 You entered a positive number: 5 This statement is always executed.
Lorsque l'utilisateur saisit 5
, la condition number > 0
est évalué à true
et la déclaration à l'intérieur du corps de if
est exécuté.
Sortie 2
Enter a number: -5 This statement is always executed.
Lorsque l'utilisateur saisit -5
, la condition number > 0
est évalué à false
et la déclaration à l'intérieur du corps de if
n'est pas exécuté.
C++ si... sinon
Le if
l'instruction peut avoir un else
facultatif clause. Sa syntaxe est :
if (condition) {
// block of code if condition is true
}
else {
// block of code if condition is false
}
Le if..else
instruction évalue le condition
entre parenthèses.
Si le condition
évalue true
,
- le code à l'intérieur du corps de
if
est exécuté - le code dans le corps de
else
est ignoré de l'exécution
Si le condition
évalue false
,
- le code dans le corps de
else
est exécuté - le code à l'intérieur du corps de
if
est ignoré de l'exécution
Exemple 2 :C++ if...else Statement
// Program to check whether an integer is positive or negative
// This program considers 0 as a positive number
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number >= 0) {
cout << "You entered a positive integer: " << number << endl;
}
else {
cout << "You entered a negative integer: " << number << endl;
}
cout << "This line is always printed.";
return 0;
}
Sortie 1
Enter an integer: 4 You entered a positive integer: 4. This line is always printed.
Dans le programme ci-dessus, nous avons la condition number >= 0
. Si nous saisissons le nombre supérieur ou égal à 0 , alors la condition évalue true
.
Ici, nous entrons 4 . Donc, la condition est true
. Par conséquent, la déclaration à l'intérieur du corps de if
est exécuté.
Sortie 2
Enter an integer: -4 You entered a negative integer: -4. This line is always printed.
Ici, nous entrons -4 . Donc, la condition est false
. Par conséquent, la déclaration à l'intérieur du corps de else
est exécuté.
Instruction C++ if...else...else if
Le if...else
instruction 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 le if...else if...else
déclaration.
La syntaxe du if...else if...else
déclaration est :
if (condition1) {
// code block 1
}
else if (condition2){
// code block 2
}
else {
// code block 3
}
Ici,
- Si
condition1
évalue àtrue
, lecode block 1
est exécuté. - Si
condition1
évalue àfalse
, puiscondition2
est évalué. - Si
condition2
esttrue
, lecode block 2
est exécuté. - Si
condition2
estfalse
, lecode block 3
est exécuté.
Remarque : Il peut y avoir plus d'un else if
mais un seul if
et else
déclarations.
Exemple 3 :C++ si...sinon...sinon si
// Program to check whether an integer is positive, negative or zero
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
else if (number < 0) {
cout << "You entered a negative integer: " << number << endl;
}
else {
cout << "You entered 0." << endl;
}
cout << "This line is always printed.";
return 0;
}
Sortie 1
Enter an integer: 1 You entered a positive integer: 1. This line is always printed.
Sortie 2
Enter an integer: -2 You entered a negative integer: -2. This line is always printed.
Sortie 3
Enter an integer: 0 You entered 0. This line is always printed.
Dans ce programme, nous prenons un numéro de l'utilisateur. On utilise alors le if...else if...else
échelle pour vérifier si le nombre est positif, négatif ou zéro.
Si le nombre est supérieur à 0
, le code à l'intérieur du if
bloc est exécuté. Si le nombre est inférieur à 0
, le code à l'intérieur du else if
bloc est exécuté. Sinon, le code à l'intérieur du else
bloc est exécuté.
C++ imbriqué si...else
Parfois, nous devons utiliser un if
déclaration à l'intérieur d'un autre if
déclaration. C'est ce qu'on appelle if
imbriqué déclaration.
Considérez-le comme plusieurs couches de if
déclarations. Il y a un premier if
extérieur déclaration, et à l'intérieur se trouve un autre if
interne déclaration. Sa syntaxe est :
// outer if statement
if (condition1) {
// statements
// inner if statement
if (condition2) {
// statements
}
}
Remarques :
- Nous pouvons ajouter
else
etelse if
déclarations à l'intérieurif
déclaration au besoin. - Le
if
intérieur l'instruction peut également être insérée à l'intérieur duelse
extérieur ouelse if
déclarations (si elles existent). - Nous pouvons imbriquer plusieurs couches de
if
déclarations.
Exemple 4 :C++ imbriqué si
// C++ program to find if an integer is positive, negative or zero
// using nested if statements
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Enter an integer: ";
cin >> num;
// outer if condition
if (num != 0) {
// inner if condition
if (num > 0) {
cout << "The number is positive." << endl;
}
// inner else condition
else {
cout << "The number is negative." << endl;
}
}
// outer else condition
else {
cout << "The number is 0 and it is neither positive nor negative." << endl;
}
cout << "This line is always printed." << endl;
return 0;
}
Sortie 1
Enter an integer: 35 The number is positive. This line is always printed.
Sortie 2
Enter an integer: -35 The number is negative. This line is always printed.
Sortie 3
Enter an integer: 0 The number is 0 and it is neither positive nor negative. This line is always printed.
Dans l'exemple ci-dessus,
- Nous prenons un entier comme entrée de l'utilisateur et le stockons dans la variable num .
- Nous utilisons alors un
if...else
instruction pour vérifier si num n'est pas égal à0
.- Si
true
, puis l'intérieurif...else
l'instruction est exécutée. - Si
false
, le code à l'intérieur de l'extérieurelse
la condition est exécutée, ce qui imprime"The number is 0 and it is neither positive nor negative."
- Si
- L'intérieur
if...else
l'instruction vérifie si le nombre d'entrée est positif, c'est-à-dire si num est supérieur à 0 .- Si
true
, puis nous imprimons une déclaration disant que le nombre est positif. - Si
false
, on imprime que le nombre est négatif.
- Si
Remarque : Comme vous pouvez le voir, if...else
imbriqué rend votre logique compliquée. 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 number = 5;
if (number > 0) {
cout << "The number is positive." << endl;
}
else {
cout << "The number is negative." << endl;
}
avec
int number = 5;
if (number > 0)
cout << "The number is positive." << endl;
else
cout << "The number is negative." << endl;
La sortie des deux programmes sera la même.
Remarque : Bien qu'il ne soit pas nécessaire d'utiliser { }
si le corps de if...else
n'a qu'une seule instruction, utilisant { }
rend votre code plus lisible.
En savoir plus sur la prise de décision
Dans certaines situations, un opérateur ternaire peut remplacer un if...else
déclaration. Pour en savoir plus, consultez Opérateur ternaire C++.
Si nous devons faire un choix entre plusieurs alternatives en fonction d'une condition de test donnée, le switch
déclaration peut être utilisée. Pour en savoir plus, visitez le commutateur C++.
Consultez ces exemples pour en savoir plus :
Programme C++ pour vérifier si le 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++
- Gestion de la mémoire C++ :création et suppression
- Héritage C++ public, protégé et privé
- Fonction amie C++ et classes amies
- Instruction Python, indentation et commentaires
- Classe imbriquée et interne Java
- Date et heure C++
- Surcharge C++ (opérateur et fonction)
- Fichiers et flux C++