¿Cómo funcionan los operadores postincremento (i++) y preincremento (++i) en Java?

Resuelto Ankit Sachan asked hace 14 años • 14 respuestas

¿Puedes explicarme el resultado de este código Java?

int a=5,i;

i=++a + ++a + a++;
i=a++ + ++a + ++a;
a=++a + ++a + a++;

System.out.println(a);
System.out.println(i);

La salida es 20 en ambos casos.

Ankit Sachan avatar Mar 03 '10 19:03 Ankit Sachan
Aceptado

++aincrementa y luego usa la variable.
a++utiliza y luego incrementa la variable.

Si usted tiene

a = 1;

y lo hace

System.out.println(a++); //You will see 1

//Now a is 2

System.out.println(++a); //You will see 3

codaddict explica su fragmento particular.

Lombo avatar Mar 03 '2010 12:03 Lombo

¿Esto ayuda?

a = 5;
i=++a + ++a + a++; =>
i=6 + 7 + 7; (a=8)

a = 5;
i=a++ + ++a + ++a; =>
i=5 + 7 + 8; (a=8)

El punto principal es que ++aincrementa el valor y lo devuelve inmediatamente.

a++también incrementa el valor (en segundo plano) pero devuelve el valor sin cambios de la variable; lo que parece que se ejecuta más tarde.

kgiannakakis avatar Mar 03 '2010 12:03 kgiannakakis