Heim >Java >javaLernprogramm >Warum lässt „j = j ;' in Java „j' unverändert?
Post-Inkrement-Operator in Java
Der Post-Inkrement-Operator ( ) ist ein unärer Operator, der den Wert einer Variablen um 1 erhöht , seine Semantik kann etwas verwirrend sein.
Betrachten Sie das folgende Codesegment:
<code class="java">int j = 0; for (int i = 0; i < 100; i++) { j = j++; } System.out.println(j); // prints 0</code>
Hier bleibt der Wert von j nach der Schleife 0. Dieses Verhalten ist auf den ersten Blick kontraintuitiv, kann aber durch die Untersuchung der vom Compiler durchgeführten Schritte verstanden werden:
Im Wesentlichen speichert der Post-Inkrement-Operator den ursprünglichen Wert der Variablen, bevor er ihn erhöht. Dies ähnelt dem folgenden Codeblock:
<code class="java">int temp = j; j++; j = temp;</code>
Betrachten Sie im Gegensatz dazu das folgende Codesegment:
<code class="java">int a = 0, b = 0; a = b++; System.out.println(a); // prints 0 System.out.println(b); // prints 1</code>
Hier wird a der ursprüngliche Wert von b (0) zugewiesen. und dann wird b erhöht. Dieses Verhalten folgt der Regel, dass Zuweisungen mit Post-Fix-Inkrementierungsoperator zuerst die rechte Seite auswerten, die Variable erhöhen und dann den ursprünglichen Wert zuweisen.
Wenn wir dieselbe Logik auf das frühere Beispiel anwenden, können wir dies tun Sehen Sie, warum j = j zu 0 führt:
Daher kann der Post-Inkrement-Operator zu unerwarteten Ergebnissen führen Ergebnisse, wenn sie nicht richtig verstanden werden. Es ist wichtig zu bedenken, dass die Variable nach der Auswertung des Ausdrucks erhöht und der Variablen der ursprüngliche Wert zugewiesen wird.
Das obige ist der detaillierte Inhalt vonWarum lässt „j = j ;' in Java „j' unverändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!