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