Warum funktioniert das Vertauschen von Ganzzahlvariablen durch XOR nicht in einer einzelnen Zeile?

Ich möchte den Wert von zwei Integer-Variablen in Java mit dem XOR-Operator austauschen.

Das ist mein Code:

int i = 24;
int j = 17;

i ^= j;
j ^= i;
i ^= j;

System.out.println("i : " + i + "\t j : " + j);

Es wird gut funktionieren, aber der folgende äquivalente Code funktioniert nicht:

int i = 24;
int j = 17;

i ^= j ^= i ^= j;

System.out.println("i : " + i + "\t j : " + j);

Die Ausgabe ist wie folgt:

i : 0    j : 24

Erste Variable ist Null! Was ist los mit Java?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage