Retour Suite Index

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;

Retour Suite Index