4.6. Les opérateurs logiques : ET OU NON
| 
			 Le Langage C possède trois opérateurs logiques : 
			 Les opérateurs logiques acceptent comme opérandes toutes les valeurs numériques (réels compris !). Ils considèrent que : 
 Comment le compilateur évalue t‐il une expression logique ? 
 
 a<b && c<d prend la valeur 1 (vrai) si les deux conditions a<b et c<d sont toutes les deux vraies (de valeur non nulle), la valeur 0 (faux) dans le cas contraire. 
			 prend la valeur 1 (vrai) si l'une au moins des deux expressions a<b et c==0 est vraie (de valeur non nulle), la valeur 0 (faux) dans le cas contraire. 
 ! (a<b) prend la valeur 1 (vrai) si la condition a<b est fausse (de valeur 0), la valeur 0 (faux) dans le cas contraire. Cette expression est équivalente à a>=b. 
 
 expr1 && expr2 expr2 
			ne sera évaluée que si expr1 est vraie ne sera évaluée que si expr1 est fausse 
 
 On cherche à savoir si un entier n est compris entre 10 et 20. Solution du débutant (fausse) : if ( 10<n<20 ) … l'expression n<10 vaut 0 ou 1 selon qu’elle est vraie ou fausse. C’est cette valeur 0 ou 1 qui est ensuite comparée à 20, avec un résultat évidemment vrai. Au final, la condition 10<n<20 est toujours vraie ! 
 Solution juste : if ( n>10 && n<20 ) … Il faut écrire deux conditions testées successivement (ET logique). Remarquons que la deuxième condition sera testée seulement si la première est vraie.  |