Programmation en C++ – Les structures conditionnelles
Les structures conditionnelles exigent que le programmeur spécifie une ou plusieurs conditions à évaluer ou à tester par le programme, et consiste à décider l’ordre d’exécution des déclarations en fonction de certaines conditions ou à répéter un groupe d’instruction jusqu’à ce que certaines conditions spécifiées soient remplies.
Voir ci-dessous la figure qui montre la forme générale d’une structures conditionnelles typique trouvée dans la plupart des langages de programmation
Description de chaque déclaration |
---|
Déclaration if Consiste en une expression booléenne suivie d’une ou plusieurs instructions. |
Déclaration if…else L’instruction « if » peut être suivie d’une instruction optionnelle « else », qui s’exécute lorsque l’expression booléenne est false. |
Déclaration imbriqués if Vous pouvez utiliser une instruction « if » ou « else if » dans une autre instruction « if » ou « else if ». |
Déclaration switch L’instruction switch permet de tester l’égalité d’une variable à une liste de valeurs. |
Déclaration imbriqués switch Vous pouvez utiliser une instruction switch dans une autre instruction switch (s). |
Déclaration if
La forme générale d’une déclaration if est,
if( expression ) { Declaration-interieur; } Declaration-exterieur;
Si l’expression est vraie, alors ‘Declaration-interieur’ elle sera exécutée, sinon ‘Declaration-interieur’ est ignoré et seulement ‘Declaration-exterieur’ est exécuté.
Exemple :
#include <iostream> using namespace std; void main( ) { int x,y; x=15; y=13; if (x > y ) { cout << "x est supérieur a y" <<endl; } }
La sortie :
x est superieur à y
Déclaration if…else
La forme générale d’une instruction if … else est,
if( expression ) { Bloc-instructions-1; }else { Bloc-instructions-2; }
Si l’expression est vraie, le ‘Bloc-instructions-1’ est exécuté, sinon ‘Bloc-instructions-1’ est ignoré et ‘Bloc-instructions-2’ est exécuté.
Exemple :
#include <iostream> using namespace std; void main( ) { int x,y; x=14; y=19; if (x > y ) { cout << "x est supérieur a y" <<endl; } else { cout << "y est supérieur a x"<<endl; } }
La sortie :
y est superieur à x
Déclaration imbriqués if
La forme générale d’une instruction imbriquée if … else est,
if( expression ) { if( expression1 ) { Bloc-instructions1; } else { Bloc-instructions2; } }else { Bloc-instructions3; }
Si ‘expression’ est fausse, ‘Bloc-instructions3’ sera exécuté, sinon il continue à effectuer le test pour ‘expression 1’. Si l ‘expression 1 est vraie, ‘Bloc-instructions1’ est exécutée sinon ‘Bloc-instructions2’ est exécutée.
Exemple :
#include <conio.h> #include <iostream> using namespace std; void main( ) { int a,b,c; clrscr(); cout << "entrez 3 nombres"<<endl; cin >> a >> b >> c; if(a>b) { if( a > c) { cout << "a est le plus grand"<<endl; } else { cout << "c est le plus grand"<<endl; } } else { if( b> c) { cout << "b est le plus grand"<<endl; } else { cout << "c est le plus grand"<<endl; } } getch(); }
Déclaration else if
La forme générale de else if est,
if(expression1) { Bloc-instructions1; }else if(expression2) { Bloc-instructions2; }else if(expression3 ) { Bloc-instructions3; }else Bloc-instructions4;
L’expression est testée à partir du haut vers le bas. Dès que l’état réel est trouvé, l’instruction qui lui est associée est exécutée.
Exemple :
#include <conio.h> #include <iostream> using namespace std; void main( ) { int a; cout << "entrez un nombre"<<endl; cin >> a; if( a%5==0 && a%8==0) { cout <<"divisible par les 5 et 8"<<endl; } else if( a%8==0 ) { cout <<"divisible par 8"<<endl; } else if(a%5==0) { cout <<"divisible par 5"<<endl; } else { cout <<"non divisible"<<endl; } getch(); }
L’ opérateur ? :
Nous avons couvert l’opérateur conditionnel ? : Dans le chapitre précédent, qui peut être utilisé pour remplacer les instructions if … else. Il a la forme générale suivante
Exp1 ? Exp2 : Exp3;
Exp1, Exp2 et Exp3 sont des expressions.
Si Exp1 est vrai donc Exp2 sera exécuter sinon Exp3 qui sera exécuter.
Les points à retenir
1- Dans une déclaration if, si on a une seule instruction à l’intérieur donc vous n’êtes pas obliger de fermer les accolades {}
int a = 5; if(a > 4) cout<<"success";
Aucun accolade n’est nécessaire dans le cas ci-dessus, mais si nous avons plus d’une déclaration à l’intérieur nous devons fermer les accolades.
2- == doit être utilisé pour la comparaison dans l’expression if , si vous utilisez l’expression = renverra toujours true, car elle effectue l’affectation et non la comparaison.
3- Toutes les valeurs sont considérées comme vraies sauf 0 (zéro).
if(45) cout<<"bonjour";
Dans l’exemple ci-dessus, bonjour sera affichée.