5.2.1 L'alternative if – else et le test if

L'instruction if permet d'effectuer une action si et seulement si une certaine condition est satisfaite. Elle se complète éventuellement d'une partie else, optionnelle. L'instruction if‐else permet de réaliser l'alternative en « pseudo‐code » suivante :
Sa syntaxe est :
L’instruction else est facultative, l'instruction if peut être utilisée seule. Par exemple : Si l'expression a==b est vraie (non nulle), l'instruction d’affichage printf est effectuée ; sinon, l'exécution reprend à la ligne suivante. C'est l'expression la plus simple de l'instruction if. L'instruction if complétée avec else permet de choisir entre deux actions (alternative). Ainsi : Si l'expression a>=b est vraie (non nulle), l'instruction distance = a-b est exécutée ; dans le cas contraire (expression nulle), c'est l'instruction distance = b-a qui est exécutée.
Il est possible d'imbriquer les instructions if. Pour lever l'ambiguïté, en l’absence de parenthèses bien placées, C associe toujours le else au if sans else le plus proche.
Certains if‐else imbriqués traduisent un choix multiple qu'on ne peut pas réaliser avec switch, parce que le choix ne se fait pas en fonction d'une variable entière. Par exemple, lorsqu'on compare successivement une chaîne de caractères à plusieurs chaînes fixes. Il est alors bien pratique (et c'est la seule exception à la règle de style qui impose les tabulations) de les écrire au même niveau avec else if :
short int n ; /* valeur à saisir au clavier par exemple (non fait ici) */
if (n>0) printf("\n Le nb n est strictement positif") ;
L'exemple suivant illustre le danger des instructions if‐else imbriquées. On s'efforcera d'éviter de telles imbrications.
|