交换两个变量a、b值的五种方法

交换两个变量a、b值的五种方法

      • 一、利用第三个变量交换
      • 二、利用表达式交换
      • 三、利用+、-交换
      • 四、利用*、/交换
      • 五、利用异或交换 (最快)

一、利用第三个变量交换

创建一个新的变量来作为桥梁交换两个变量的值

c = a;
a = b;
b = c;

二、利用表达式交换

利用表达式从左至右的计算顺序交换两个变量的值

a = a + b - (b = a);  //从左至右计算

三、利用+、-交换

两变量之和减去本身的值为另一个的值

Note:可能导致中间值过大而溢出

a = a + b;
b = a - b;
//表达式右边的a为之前a、b之和;b为之前a的值
a = a - b;  

四、利用*、/交换

与利用+、-的原理相同

Note: 可能出现中间值过大而溢出

a = a * b;
b = a / b;
a = a / b;

五、利用异或交换 (最快)

最快的交换方法

异或两次同一个数,将得到原数值

Note:不能交换两个相同值的数

/*以A和B分别代表a、b的初始值*/
//a = A ^ B
a = a ^ b;
//b = (A ^ B) ^ B = A
b = a ^ b;
//a = (A ^ B) ^ ((A ^ B) ^ B) = B
a = a ^ b;

你可能感兴趣的:(Java,java)