Новых переменных не использовал: y = x ^ y; // y = 1(001) x ^= y; // x = 5 (101) y = x - y; // y = 5 -1 = 4 значения местами поменялись, а проверку не проходит, типа не выполнено условие: "Вызов метода swap() должен поменять значения полей x и y." Зато с использованием новой переменной все прошло, хотя точно не соответствует условию! Что за дела???