![]()
Erreur avec les opérateurs ![]()
![]()
![]()
![]()
![]()
Suivant: Erreurs avec les macros Début: Le bêtisier Précédent: Le bêtisier
Paragraphes
Erreur avec les opérateurs
Erreur sur une comparaison
Ce que voulait le programmeur
Comparer a et b
Ce qu'il aurait du écrire
if (a == b)
Ce qu'il a écrit
if (a = b)
Ce qu'il a obtenu
une affectation de b à a, suivie d'une comparaison à 0 de la valeur affectée.
Comment est ce possible ?
L'affectation est un opérateur et non pas une instruction.Erreur sur l'affectation
C'est le pendant de l'erreur précédente.
Ce que voulait le programmeur
Affecter b à a
Ce qu'il aurait du écrire
a = b;
Ce qu'il a écrit
a == b;
Ce qu'il a obtenu
La comparaison de a à b, suivie de l'inutilisation du résultat.
Comment est ce possible ?
Une dérivation possible pour instruction est :
instruction :
expressionoption ;
Pour que cela ait un sens, il faut que l'expression réalise un effet de bord, mais rien ne l'impose dans la définition du langage.
30/9/1997