@Test
public void code(){
int a= 6;
int b = 9;
//要求m和n交换位置
System.out.println("m=" + m + " n=" + n);//m=6 n=9
//方法一:定义中间变量法
//优点:操作简单,容易理解 缺点:需定义临时变量,内存消耗较大
int temp = m;
m = n;
n = temp;
System.out.println("m=" + m + " n=" + n);//m=9 n=6
//方法二:不定义临时变量,使用相加
//优点:无需定义临时变量,节省内存。缺点:当两个数值较大时,容易丢失精度
m = m + n;//6 + 9
n = m - n;//15- 9,是原来的m的值,赋给n
m = m - n;//15 - 6,是原来n的值,赋给m
System.out.println("m=" + m + " n=" + n);//m=9 n=6
//方法三:一句话交换
//优点:代码短,缺点:容易丢失精度
m=(m+n)-(n=m);
//方法四:大神专用,使用异或^
//优点:不会丢失精度,不用定义变量,内存消耗最小,缺点:一般人不会想到这么写,写了一般人也看不懂
m = m ^ n;
n = m ^ n;// m ^ n ^ n == m
m = m ^ n;// m ^ n ^ m == n
System.out.println("m=" + m + " n=" + n);//m=9 n=6
}
以上就是四种方法,来实现两个整数间的交换。
原文:https://www.cnblogs.com/Z7TS/p/11885949.html