presumendo che si intende
int a=5; int i;
i=++a + ++a + a++;
System.out.println(i);
a=5;
i=a++ + ++a + ++a;
System.out.println(i);
a=5;
a=++a + ++a + a++;
System.out.println(a);
Questo restituisce:
i = (6, a is now 6) + (7, a is now 7) + (7, a is now 8)
così mi è 6 + 7 + 7 = 20 e così 20 sarà stampato.
i = (5, a is now 6) + (7, a is now 8) + (8, a is now 9)
così i è 5 + 7 + 8 = 20 e quindi 20 viene stampato nuovamente.
a = (6, a is now 6) + (7, a is now 7) + (7, a is now 8)
e dopo tutto il lato destro viene valutata (compresa l'impostazione di un a 8) allora A è impostato 6 + 7 + 7 = 20 e così 20 viene stampata l'ultima volta.
7 + 7 + 6 = 20. _____ – kennytm
Evita sempre le dichiarazioni ambigue :) –
@Prasoon Saurav A differenza di C e C++, Java e C# hanno un ordine di valutazione strettamente definito, quindi queste affermazioni non sono ambigue. –