小编Xsj*_*ado的帖子

一行上的多个分配未按预期工作

我正在尝试交换两个ints - x并且y在示例中,并且在没有库函数的情况下在一行中执行.

所以我从这开始:

int x = 4;
int y = 3;

System.out.println(x);
System.out.println(y);

x ^= y;

System.out.println(x);
System.out.println(y);

y ^= x;

System.out.println(x);
System.out.println(y);

x ^= y;

System.out.println(x);
System.out.println(y);
Run Code Online (Sandbox Code Playgroud)

输出4, 3, 7, 3, 7, 4, 3, 4与预期一致.到目前为止都很好.

接下来是这样的:

int x = 4;
int y = 3;

System.out.println(x);
System.out.println(y);

y ^= (x ^= y);

System.out.println(x);
System.out.println(y);

x ^= y;

System.out.println(x);
System.out.println(y);
Run Code Online (Sandbox Code Playgroud)

产量4, 3, 7, 4, 3, 4再次如预期.到目前为止仍然很好.

最后这个:

int x = 4; …
Run Code Online (Sandbox Code Playgroud)

java variables xor variable-assignment bitwise-operators

20
推荐指数
2
解决办法
1470
查看次数