Java Language Les opérateurs d'incrémentation / décrémentation (++ / -)


Exemple

Les variables peuvent être incrémentées ou décrémentées de 1 en utilisant respectivement les opérateurs ++ et -- .

Lorsque les opérateurs ++ et -- suivent des variables, ils sont appelés respectivement post-incrémentation et post-décrémentation .

int a = 10;
a++; // a now equals 11
a--; // a now equals 10 again

Lorsque les opérateurs ++ et -- précèdent les variables, les opérations sont appelées pré-incrémentation et pré-décrémentation respectivement.

int x = 10;
--x; // x now equals 9
++x; // x now equals 10

Si l'opérateur précède la variable, la valeur de l'expression est la valeur de la variable après incrémentation ou décrémentation. Si l'opérateur suit la variable, la valeur de l'expression est la valeur de la variable avant d'être incrémentée ou décrémentée.

int x=10;

System.out.println("x=" + x + " x=" + x++ + " x=" + x); // outputs x=10 x=10 x=11
System.out.println("x=" + x + " x=" + ++x + " x=" + x); // outputs x=11 x=12 x=12
System.out.println("x=" + x + " x=" + x-- + " x=" + x); // outputs x=12 x=12 x=11
System.out.println("x=" + x + " x=" + --x + " x=" + x); // outputs x=11 x=10 x=10

Veillez à ne pas écraser les post-incréments ou les décréments. Cela se produit si vous utilisez un opérateur de post-in / decrement à la fin d'une expression qui est réaffecté à la variable in / decremented elle-même. Le in / decrement n'aura aucun effet. Même si la variable du côté gauche est incrémentée correctement, sa valeur sera immédiatement remplacée par le résultat précédemment évalué du côté droit de l'expression:

int x = 0; 
x = x++ + 1 + x++;      // x = 0 + 1 + 1 
                        // do not do this - the last increment has no effect (bug!) 
System.out.println(x);  // prints 2 (not 3!) 

Correct:

int x = 0;
x = x++ + 1 + x;        // evaluates to x = 0 + 1 + 1
x++;                    // adds 1
System.out.println(x);  // prints 3