在进行编写代码的时候,经常需要对两个变量进行交换,这里就给大家提供几个方法。
1.创建临时变量
这是一种非常常见的交换方法,原理就像下面的图一样,换一圈就行,如下:
2.从两者的和差出发
这种方法较第一种比较难理解,而且存在一定的缺陷:如果两个整型都是特别大,加起来的结果可能会超出它们数据类型的边界,就导致数据的丢失。
3.结合位运算的特点
这一次我们借用了异或操作符,它是对数的二进制位进行运算,规则是相同为0,相异为1,什么意思呢?如下:
有了这一层理解,想必大家应该能看得懂了吧,但是这种方式虽然不会超过边界,但是代码的可读性不是很好,如果读者对异或运算没有了解的话,就会看的一头雾水,所以还是优先考虑第一种方式,除非在做题的时候有额外限制,比如:不能创建第三个临时变量。
4.输出时候进行位置交换
这样的解决方法更为地简洁,而且也达到了最终想要的效果,我们写代码的时候有时候不需要过于去创造条件,对于不同的问题,可以去不断思考怎么优化它,不能为了代码而代码,我们必须要跳出一定的限制。