Reihenfolge der Auswertung von Unterausdrücken in einem Java-Ausdruck

Ich habe den folgenden Codeausschnitt:

int x=2,y=3;
if ( (y == x++) | (x < ++y) )
// rest of code

Ich weiß, dass Sie in C ++ lernen, sich nicht auf die Auswertungsreihenfolge der Unterausdrücke zu verlassen, da keine Reihenfolge garantiert ist. Dieser Code wäre also fehlerhaft, und es kann nicht garantiert werden, dass der Boolesche Wert des Ausdrucks in der Bedingung wahr ist (y kann inkrementiert werden, bevor er beispielsweise im ersten Gleichheitstest ausgewertet wird). Da ich diesen Code in einem Java-Zertifizierungsbuch gelesen habe, gehe ich davon aus, dass dies bei Java nicht der Fall ist. Der obige Ausdruck sollte also immer true ergeben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage