Previous Next Up Index Contents

5.2. if sans else


La partie else est facultative. On peut donc utiliser if de la façon suivante:

if sans else

if ( <expression> ) 
      <bloc d'instructions>

Attention !

Comme la partie else est optionnelle, les expressions contenant plusieurs structures if et if - else peuvent mener à des confusions.

Exemple

L'expression suivante peut être interprétée de deux façons:

Attention!

if (N>0)
   if (A>B)
      MAX=A;
   else
      MAX=B;
if (N>0)
   if (A>B)
      MAX=A;
else
   MAX=B;

Pour N=0, A=1 et B=2,

* dans la première interprétation, MAX reste inchangé,

* dans la deuxième interprétation, MAX obtiendrait la valeur de B.

Sans règle supplémentaire, le résultat de cette expression serait donc imprévisible.

Convention

En C une partie else est toujours liée au dernier if qui ne possède pas de partie else.

Dans notre exemple, C utiliserait donc la première interprétation.

Solution

Pour éviter des confusions et pour forcer une certaine interprétation d'une expression, il est recommandé d'utiliser des accolades { } .

Exemple

Pour forcer la deuxième interprétation de l'expression ci-dessus, nous pouvons écrire:

if (N>0)
      {
       if (A>B)
          MAX=A;
      }
   else
      MAX=B;


Exercice 5.1

Considérez la séquence d'instructions suivante:

if (A>B) printf ("premier choix \n"); else 
   if (A>10) printf ("deuxième choix \n");
   if (B<10) printf ("troisième choix \n");
   else printf ("quatrième choix \n");
a) Copiez la séquence d'instructions en utilisant des tabulateurs pour marquer les blocs if - else appartenant ensemble.

b) Déterminez les réponses du programme pour chacun des couples de nombres suivants et vérifiez à l'aide de l'ordinateur.

- A=10 et B=5

- A=5 et B=5

- A=5 et B=10

- A=10 et B=10

- A=20 et B=10

- A=20 et B=20


Previous Next Up Index Contents


Feedback - Copyright © 1993,1996,1997 F.Faber