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

 
 
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.
 
 

Laisser un commentaire

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