#java #variable-assignment
#java #переменная-присвоение
Вопрос:
Допустим, у меня есть следующие переменные:
int x = 1;
int y = 2;
//some calculations follow(x and y stay the same init values) that somehow require you to interchange the values of y and x
как я могу установить y = 1 и x = 2 в одной строке кода??
Ответ №1:
Не уверен, зачем это нужно, но вы можете сделать это следующим образом:
int x = 2, y = 1;
Комментарии:
1. да, но я должен поменять их местами после выполнения вычислений
2. Вопрос только что задан, как назначить
x = 2
иy = 1
в одной строке. Если вы хотите знать, как поменять местами значения, хранящиеся вx
иy
, это совершенно другой вопрос. В этом случае вы хотели бы сделатьint z = x, x = y, y = z;
3. да, хороший ответ.. но я надеялся на способ, при котором вам не нужно хранить в памяти дополнительные переменные.
4. x = x y; y = x — y; x = x — y; h / t w3resource.com/java-exercises/basic/java-basic-exercise-15.php
5. Это кажется отличным способом переполнения ваших переменных.
Ответ №2:
Попробуйте использовать побитовый оператор XOR(^).
x = x ^ y ^ (y = x);
Ваш завершенный код может выглядеть так,
class Main
{
public static void main (String[] args)
{
int x = 1, y = 2;
x = x ^ y ^ (y = x);
System.out.println("x after swapping:nx=" x "ny after swapping,ny=" y);
}
}
Комментарии:
1. как вы можете объяснить строку: x = x ^ y ^ (y = x);
2. youtube.com/watch?v=07VQR78Kzm0 Вот видео, которое вам поможет.
3. да, но когда вы запускаете свой код x = 1 и y = 2 .. мне нужны y = 1 и x = 2
4. Предполагая, что у вас есть оператор print после x = x ^ y ^ (y = x)
5. x = x y — (y = x); Попробуйте это вместо этого оператора xor opration