Dlaczego zamiana zmiennej całkowitej na XOR nie działa w jednej linii?
Chcę zamienić wartość dwóch zmiennych całkowitych w java za pomocą operatora XOR.
To jest mój kod:
int i = 24;
int j = 17;
i ^= j;
j ^= i;
i ^= j;
System.out.println("i : " + i + "\t j : " + j);
Działa dobrze, ale następujący równoważny kod nie działa:
int i = 24;
int j = 17;
i ^= j ^= i ^= j;
System.out.println("i : " + i + "\t j : " + j);
Dane wyjściowe są następujące:
i : 0 j : 24
Pierwsza zmienna to zero! Co jest nie tak z Javą?