Post-Inkrement-Operator in Java
Frage:
Im Codeausschnitt unten, warum Weist der Post-Inkrement-Operator j j 0 zu?
public class Test { public static void main(String[] args) { int j = 0; for (int i = 0; i < 100; i++) { j = j++; } System.out.println(j); // prints 0 } }
Laut dem Autor des Buches „Java Puzzlers“ ähnelt die Aussage j = j der folgenden Sequenz:
temp = j; j = j + 1; j = temp;
Allerdings weist die Anweisung a = b b den Wert 1 zu, was dem erwarteten Verhalten des Post-Inkrement-Operators widerspricht.
Antwort:
Der Fehler in Das Argument besteht darin, die Inkrementierungsregel anzuwenden und dann a = b zuzuweisen, aber nicht j = j . Die korrekte Reihenfolge der Operationen für a = b ist:
temp = b; b = b + 1; // increment a = temp; // assign
Wenn wir dieselbe Regel auf j = j anwenden, erhalten wir:
j = j; j = j + 1; // increment
Da der Anfangswert von j 0 war, Der Post-Inkrement-Operator gibt 0 zurück, da der Wert von j vor dem Inkrement im Ausdruck verwendet wird.
Daher ist der Endwert von j 0, da die Zuweisungsanweisung zu j = 0 ausgewertet wird.
Das obige ist der detaillierte Inhalt vonWarum weist j = j in Java j 0 zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!