交换两个变量的值,我们首先能分成两种做法。第一种是创建一个临时变量来保存其中一个变量的值,从而进行交换;第二种是不创建临时变量使用加减方法和异或的方法实现两个值的交换。
创建临时变量是我们能直接想到最简单的方法;如果不允许创建临时变量我们也能想到用加减法来实现,并且不会产生值溢出的情况。但是异或的方法前提是我们对位运算非常了解他们的特性,这个比较难想到。
具体代码实现如下:
public class Java {
public static void main(String[] args) {
int a = 40;
int b = 20;
// 方法一(创建临时变量):
int num = 0;
num = a;
a = b;
b = num;
// 方法二(不创建临时变量,使用加减方法):
b = a - b;
a = a - b;
b = a + b;
// 方法三(不创建临时变量,使用异或方法):
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println(a);
System.out.println(b);
}
}