Heim >Java >javaLernprogramm >Java-Präfix vs. Postfix-Inkrement/Dekrement: Warum ergibt „i' in diesem Beispiel 7?
Präfix- und Postfix-Inkrementierungs-/Dekrementierungsoperatoren in Java
Das Verständnis des Unterschieds zwischen Präfix- und Postfix-Inkrementierungs-/Dekrementierungsoperatoren ist bei der Java-Programmierung von entscheidender Bedeutung. In diesem Artikel werden die Auswirkungen dieser Operatoren anhand eines praktischen Beispiels untersucht.
Frage:
Bedenken Sie den folgenden Codeausschnitt:
int i = 3; i++; // Postfix increment System.out.println(i); // Prints "4" ++i; // Prefix increment System.out.println(i); // Prints "5" System.out.println(++i); // Prints "6" System.out.println(i++); // Prints "6" System.out.println(i); // Prints "7"
Warum? Der letzte Aufruf von System.out.println(i) gibt den Wert aus 7?
Antwort:
Das Verhalten dieses Codes wird durch die Semantik der Präfix- und Postfix-Inkrementoperatoren bestimmt:
Präfix-Inkrement:
int i = 6; System.out.println(++i); // Prints "6"
i ergibt 7, da i erhöht wird, bevor der Wert im Ausdruck verwendet wird. Also gibt es „6“ aus und erhöht i auf 7.
Postfix-Inkrement:
int i = 6; System.out.println(i++); // Prints "6" (i = 7, prints 6)
i ergibt 6, da es eine Kopie von i speichert, fügt hinzu 1 zu i und gibt den ursprünglichen Wert zurück. Der Ausdruck gibt „6“ aus, aber i ist jetzt 7.
Im letzten Aufruf gibt System.out.println(i) den aktuellen Wert von i aus, der 7 ist. Dies liegt am Postfix-Inkrementoperator hatte es zuvor auf 7 aktualisiert.
Das obige ist der detaillierte Inhalt vonJava-Präfix vs. Postfix-Inkrement/Dekrement: Warum ergibt „i' in diesem Beispiel 7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!