Problème incrémentation.
Dell
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je n'arrive pas à comprendre le résultat suivant :
pour a = 11 et b = -12
a = a+ (b++); Je doit trouver a=-1 et b=-11 alors que moi je trouve a=0 et b=-11 car pour moi la parenthèse est prioritaire donc a = a+ (-11); ensuite a= 11 -11 = 0.
Il n'y a pas d'erreur dans l'énoncé ni dans la correction, j'ai donc besoin de votre aide.
Merci d'avance =)
Je n'arrive pas à comprendre le résultat suivant :
pour a = 11 et b = -12
a = a+ (b++); Je doit trouver a=-1 et b=-11 alors que moi je trouve a=0 et b=-11 car pour moi la parenthèse est prioritaire donc a = a+ (-11); ensuite a= 11 -11 = 0.
Il n'y a pas d'erreur dans l'énoncé ni dans la correction, j'ai donc besoin de votre aide.
Merci d'avance =)
1 réponse
-
b++ modifie b de -12 à -11 mais c'est l'ancienne valeur qui est obtenue (donc -12)
Donc a = 11 + (-12) = -1.
Pour avoir ton résultat a = 11 + (-11) = 0, il aurait fallu faire a = a+ (++b);-
-
Pas tout à fait, du moins pas dans le cas général. Comme tu l'as dit la parenthèse est prioritaire, donc il serait plus correct de dire que le fonctionnement est similaire à :
parenthèse = b;
b = b+1;
a = a + parenthèse;
Ici ça ne change rien au résultat, mais si b avait été utilisé ailleurs dans le calcul ça aurait une importance. Exemple : que vaut a + (b++) - b, et que vaut a + b - (b++) ? -
-
-