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++.
ifdéclarationif...elsedéclarationif...else if...elsedé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 deifest exécuté. - Si le
conditionévalue àfalse, le code à l'intérieur du corps deifest 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
ifest exécuté - le code dans le corps de
elseest ignoré de l'exécution
Si le condition évalue false ,
- le code dans le corps de
elseest exécuté - le code à l'intérieur du corps de
ifest 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 1est exécuté. - Si
condition1évalue àfalse, puiscondition2est évalué. - Si
condition2esttrue, lecode block 2est exécuté. - Si
condition2estfalse, lecode block 3est 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
elseetelse ifdéclarations à l'intérieurifdéclaration au besoin. - Le
ifintérieur l'instruction peut également être insérée à l'intérieur duelseextérieur ouelse ifdéclarations (si elles existent). - Nous pouvons imbriquer plusieurs couches de
ifdé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...elseinstruction pour vérifier si num n'est pas égal à0.- Si
true, puis l'intérieurif...elsel'instruction est exécutée. - Si
false, le code à l'intérieur de l'extérieurelsela condition est exécutée, ce qui imprime"The number is 0 and it is neither positive nor negative."
- Si
- L'intérieur
if...elsel'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++