Java Language Los operadores de incremento / decremento (++ / -)


Ejemplo

Las variables pueden incrementarse o disminuirse en 1 usando los operadores ++ y -- , respectivamente.

Cuando los operadores ++ y -- siguen las variables, se denominan post-incremento y post-decremento respectivamente.

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

Cuando los operadores ++ y -- preceden a las variables, las operaciones se llaman pre-incremento y pre-decremento respectivamente.

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

Si el operador precede a la variable, el valor de la expresión es el valor de la variable después de ser incrementado o disminuido. Si el operador sigue la variable, el valor de la expresión es el valor de la variable antes de ser incrementada o disminuida.

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

Tenga cuidado de no sobrescribir los incrementos o decrementos posteriores. Esto sucede si utiliza un operador de post-in / decremento al final de una expresión que se reasigna a la variable in / decremented. La in / decremento no tendrá efecto. Aunque la variable en el lado izquierdo se incrementa correctamente, su valor se sobrescribirá inmediatamente con el resultado evaluado previamente en el lado derecho de la expresión:

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!) 

Correcto:

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