Programmer en langage C
70
© Éditions Eyrolles
Par ailleurs :
if ( i++ < limite ) ......
est équivalent à :
i = i + 1 ;
if ( i-1 < limite ) ......
De même :
if ( ( c=getchar() ) != '\n' ) ......
peut remplacer :
c = getchar() ;
if ( c != '\n' ) ......
En revanche :
if ( ++i n’est pas équivalent à :
++i ;
c = getchar() ;
if ( i car, comme nous l’avons déjà dit, l’opérateur && n’évalue son second opérande que lorsque
cela est nécessaire. Autrement dit, dans la première formulation, l’expression :
c = getchar()
n’est pas évaluée lorsque la condition ++i deuxième formulation.
1.4 Imbrication des instructions if
Nous avons déjà mentionné que les instructions figurant dans chaque partie du choix d’une
instruction pouvaient être absolument quelconques. En particulier, elles peuvent, à leur tour,
renfermer d’autres instructions if. Or, compte tenu de ce que cette instruction peut comporter
ou ne pas comporter de else, il existe certaines situations où une ambiguïté apparaît. C’est le
cas dans cet exemple :
if (a<=b) if (b<=c) printf ("ordonné") ;
else printf ("non ordonné") ;
Est-il interprété comme le suggère cette présentation ?
if (a<=b) if (b<=c) printf ("ordonné") ;
else printf ("non ordonné") ;
Delannoy Livre.book Page 70 Mercredi, 6. mai 2009 4:26 16
Précédent

- 83/281

Suivant