您的位置:首页 > 其它

一条语句交换两个元素的值

2015-11-13 18:03 218 查看
今天,在公司里突然想到的一个问题,如何只使用一条语句交换两个元素的值。上代码:

public class Main {
public static void main(String[] args) {
int a = 5, b = 10;
a = (a != b ?  a^b^a : 1) ^ (a != b ?  a^b^b : 1) ^ (a != b ? b = a^b^b : 1);
System.out.println(a + " " + b);
}

}


经大量测试:上面这行代码完全可以做到。 还有其他的方法是利用编译器的漏洞去交换,例如:

b=a-(a=b)+a;
在Java环境中也可以做到,但是如果用C的编译器去执行,就会不成功!

这些有待大家去证明、实践!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: