int i=9;
System.out.println(--i + ++i);
sortie lors de l'exécution: 17
La valeur finale de i est la suivante: 9sortie d'expression (-I + ++ i) en java
Mais selon l'associativité et de préséance règles en java ,, ++ je devrais être exécuté d'abord ie de droite à gauche qui donne 10 et puis - i donne 9 .. en ajoutant les deux, la réponse devrait être 19 ... Pour autant que j'ai connu un tel code donne un comportement indéfini en C/C++ mais en Java, les règles sont strictement définies et il n'y a pas de concept de points de séquence. Alors, quelqu'un peut-il clarifier le problème car je suis vraiment confus à ce sujet ?? Également dans certains livres, il a été mentionné que les opérateurs post-incrément et post-décrémentation sont associatifs LTR. Mais dans d'autres livres, il est donné tout incrément et décrément (à la fois post et pré) sont associatifs RTL .. !! Quelqu'un peut-il donner une priorité d'opérateur et une table d'associativité correctes pour Java?
double possible de [++ i + ++ i + ++ je dans Java vs C] (http://stackoverflow.com/questions/3879176/iii-in-java-vs-c) et surtout [cette réponse] (http://stackoverflow.com/a/3879280/829571) . – assylias