今天逛牛客,看见了一个面经,然后就进去看了看。突然看到一个问题:
int a=5,b=3 如何不用第三个变量,调换它俩的值
我第一反应,啊!啊?啊?啊o((⊙﹏⊙))o.。震惊我一百年,不用第三个变量,这怎么变?
我想到Go语言,有个语法糖,确实不需要第三个变量就可以交换值。难道Java也有???
然后,我就百度搜索了一个,不禁感叹,女少口阿!女少口阿!
然后特此记录以下,记录两个方法吧
方法一
1 | int a = 5,b=3; |
b = (a+b)-(a=b);
,啊这….
代码从左向右执行,先是a+b
,然后是把b
赋值给a
,最后是a+b-b
赋值给b。
然后就交换了值。巧妙的利用了,代码的执行顺序。真是细他妈给细开门——细到家了!!!
方法二
这种方法算是一种算法吧
1 | int a = 5; |
这也很妙啊,说不上来的妙。
这也算是一个编程小tips!我觉得还是方法一好!
__END__