C

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

 
[wx_adsense]  

 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

 
[wx_adsense]  
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 &lt;stdio.h&gt;

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 &lt;conio.h&gt;
#include &lt;stdio.h&gt;

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();
}  

 
[wx_adsense]  
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 &lt;stdio.h&gt;
#include &lt;conio.h&gt;

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.
 
 
[wx_amazon]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *