Por que trocar a variável inteira pelo XOR não funciona em uma única linha?
Eu quero trocar o valor de duas variáveis inteiras em java usando o operador XOR.
Este é o meu código:
int i = 24;
int j = 17;
i ^= j;
j ^= i;
i ^= j;
System.out.println("i : " + i + "\t j : " + j);
Ele funcionará bem, mas o seguinte código equivalente não funciona:
int i = 24;
int j = 17;
i ^= j ^= i ^= j;
System.out.println("i : " + i + "\t j : " + j);
Saída é assim:
i : 0 j : 24
A primeira variável é zero! O que há de errado com o Java?