Duda operadores

rutdin
07 de Febrero del 2009
Hola, tengo una duda porque no entiendo cómo se evalua j += i-- en el siguiente código:
Prueba {
public static void main(String[] args) {
int i,j;
for(i=0, j=0; i+j < 20; ++i, j += i--)
{
System.out.println(i+j);
}
}

Tengo claro que las expresiones
x = x + 1; es lo mismo que x += 1; que es igual a ++x;

pero cuando tengo la mezcla como en j += i-- no se como funciona. ¿Cuál seria el resultado si j fuera 4 y la variable i fuera 2?

Gracias

varek
07 de Febrero del 2009
Yo lo he comprobado y pense que lo que iba a hacer j= j+ i--;
pero lo que he visto es que lo unico que hace es j+i el "--" se lo omite funcionaria si el -- iri antes del i

un saludo

MIRL
07 de Febrero del 2009
Como bien has comprobado, x-- y --x funcionan de forma distinta.

x-- (o x++) en una expresión se evaluaría primero la expresión y luego decrementaría (o incrementaría) el valor de x

--x (o ++x) primero decrementaría (o incrementaría) el valor de x y luego evaluaría la expresión.

Supongo que era eso lo que no entendía quien escribió el primer post.