Der folgende Code in Java:Java Post Schritt und vor Schritt
int a = 0, b = 0, c = 0;
boolean d = (a++ > 0 && b-- < 0) || --c < 0;
Ergebnisse in den Werten:
a = 1, b = 0, c = -1 and d = true
Ich verstehe nicht, warum a
= 1 ist, weil es ein Beitrag ist Inkrementieren und sollte genauso reagieren wie der Wert b. Auch wenn ich die b--
zu --b
ändere, hat es immer noch keine Auswirkung auf den Wert von b.
Was ist der beste Weg, diese Logik zu verstehen?
Mögliches Duplikat von [Wenn Java eine Konjunktion auswertet ( && ), wird exp2 ausgewertet, wenn exp1 falsch ist?] (Https://stackoverflow.com/questions/9445145/when-java -evaluates-a-conjunction-boolean-exp1-boolesche-exp2-does-it-ev) –
Joe
im Allgemeinen: solche Code sollte in der realen Programmierung vermieden werden, es ist überholt. Ich verstehe, hier ist Bildungskontext –
Siehe auch [Java-Kurzschluss-Betreiber] (https://Stackoverflow.com/a/8759917/8097737) – devpuh