La bonne réponse est :
Il serait probablement plus simple dans ce cas d'inverser les deux branches
du if. Mais cette modification pourrait être indésirable dans
des programmes plus conséquents. |
Priorité du NOTL'opérateur NOT possède une priorité très élevée, il sera ainsi évalué en premier (avant les calculs arithmétiques ou les opérateurs relationnels) à moins que vous n'utilisiez des parenthèses. Par exemple, sans les parenthèse dans l'expression précédante, voilà ce qui serait arrivé :! ( speed > 400 && memory > 32 ) ------+------ -------+---- ! ( T && T ) ! ( T ) !T F Comme l'opérateur ! a une forte priorité, le compilateur va essayer de l'appliquer à la variable speed, ce qui n'est pas possible !!speed > 400 && memory > 32 --+--- illegal: impossible d'utiliser l'opérateur ! sur une variable numérique parfois l'utilisation du NOT peut provoquer des confusions entrainant des erreurs dans les programmes. Il est généralement mieux d'exprimer directement la condition, et d'ajuster la logique du programme pour que cela fonctionne. |
QUESTION 22:Quel est la valeur true/false de l'expression suivante ?Ne vous laissez pas perturber par la simplicité de l'expression!( true || false ) |