变量交换是编程中经常使用的功能,本文记录几种不通过不添加第三方变量来交换两个变量的实现方式。
交换变量通常采用类似如下代码:
1
2
3
4
5
6
|
int a = 3, b = 4, temp;
temp = a;
a = b;
b = temp;
System.out.println(a);
System.out.println(b);
|
上述代码实现和理解起来都很容易,除此之外还有其它的实现方式,本文以非0的int变量为例,简单记录下自己了解的相关实现。
加减法实现
1
2
3
4
5
6
|
int a = 3, b = 4;
a = a + b;
b = a - b;
a = a - b;
System.out.println(a);
System.out.println(b);
|
上述代码可以进一步精简如下:
1
2
3
4
|
int a = 3, b = 4;
a = a + b - (b = a);
System.out.println(a);
System.out.println(b);
|
乘除法实现
1
2
3
4
5
6
|
int a = 3, b = 4;
a = a * b;
b = a / b;
a = a / b;
System.out.println(a);
System.out.println(b);
|
位运算实现
1
2
3
4
5
6
|
int a = 3, b = 4;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println(a);
System.out.println(b);
|