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:
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;