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.


