Как поменять присвоение значений в Java наиболее эффективным способом?

#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