不用中间变量交换两个变量的值
解法1:
public void swapValue(int a ,int b){ //例:a=3,b=2 a+=b;//a=5,b=2 b=a-b;//b=3,a=5 a-=b;//a=2,b=3 }
解法2:
public static void swapValue(int a, int b) { //例:a=4,b=7 a^=b;//a=3,b=7 b^=a;//b=4,a=3 a^=b;//a=7,b=4 //可以简写为 //a^=b^=a^=b; }
解法3:
public static void swapValue(int a, int b) { //例:a=9,b=10 //这里需要分布解释,根据计算的优先级,会先执行括号里面的内容 //括号里是将a的值赋给b //表达式会变成 --> a = a + b - a; //从而完成值的交换 a = a + b - (b = a); }
解法3还有另一种方式:
public static void swapValue(int a, int b) { a = b + (b = a) * 0; }
以上几种是小编总结的“不用中间变量交换两个变量的值”,还请大神指教