der Annahme, dass man
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);
bedeutete dies ausgewertet:
i = (6, a is now 6) + (7, a is now 7) + (7, a is now 8)
so ist i 7 + 6 + 7 = 20 und so wird 20 gedruckt.
i = (5, a is now 6) + (7, a is now 8) + (8, a is now 9)
also ich ist 5 + 7 + 8 = 20 und so 20 wieder gedruckt wird.
a = (6, a is now 6) + (7, a is now 7) + (7, a is now 8)
und nachdem alle der rechten Seite ausgewertet wird (einschließlich einer Einstellung bis 8), wird ein auf 6 + 7 + 7 = 20 und so ist 20 ein letztes Mal gedruckt.
7 + 7 + 6 = 20. _____ – kennytm
Vermeiden Sie immer mehrdeutige Anweisungen :) –
@Prasoon Saurav Im Gegensatz zu C und C++ haben Java und C# streng definierte Reihenfolge der Auswertung, so dass diese Aussagen nicht mehrdeutig sind. –