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 <stdio.h> void main( ) { int x,y; x=15; y=13; if (x > y ) { printf("x est supérieur a y"); } }
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 <stdio.h> void main( ) { int x,y; x=14; y=19; if (x > y ) { printf("x est supérieur a y"); } else { printf("y est inferieur a x"); } }
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 <stdio.h> void main( ) { int a,b,c; clrscr(); printf ("entrez 3 nombres"); scanf("%d%d%d",&a,&b,&c); if(a>b) { if( a > c) { printf("a est le plus grand"); } else { printf("c est le plus grand"); } } else { if( b> c) { printf("b est le plus grand"); } else { printf("c est le plus grand"); } } 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 <stdio.h> #include <conio.h> void main( ) { int a; printf("entrez un nombre"); scanf("%d",&a); if( a%5==0 && a%8==0) { printf("divisible by both 5 and 8"); } else if( a%8==0 ) { printf("divisible by 8"); } else if(a%5==0) { printf("divisible by 5"); } else { printf("divisible by none"); } 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) printf("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) printf("bonjour");
Dans l’exemple ci-dessus, bonjour sera affichée.