【面试题】Java实现两个整数变量的交换
/**
* java实现两个整数变量的交换
* @author 1025
*
*/
public class Demo03 {
public static void main(String[] args) {
int a = 5;
int b = 3;
System.out.println("java实现两个整数变量的交换:");
System.out.println("a = " + a + "; b =" +b);
//test1(a, b);
//test2(a, b);
//test3(a, b);
//test4(a, b);
test5(a,b);
}
//1.使用第三方变量
public static void test1(int a,int b) {
int c = 0;
c = a;
a = b;
b = c;
System.out.println("===1使用第三方变量====");
System.out.println("a = " + a + "; b = "+ b);
}
//2 使用加减
public static void test2(int a,int b) {
a = a + b;
b = a - b; // b = (a + b )- b = a
a = a - b; // a = (a + b )- a = b
System.out.println("===2 使用加减===");
System.out.println("a = " + a + "; b = "+ b);
}
//3使用乘除
public static void test3(int a,int b) {
a = a * b;
b = a / b;// b = (a * b )/ b = a
a = a / b;// a = (a * b )/ a = b
System.out.println("===3使用乘除===");
System.out.println("a = " + a + "; b = "+ b);
}
//4.使用异或 ^
public static void test4(int a,int b) {
a = a ^ b;
b = a ^ b;// b = (a ^ b )^ b = a
a = a ^ b;// a = (a ^ b )^ a = b
System.out.println("===4使用异或 ^ ===");
System.out.println("a = " + a + "; b = "+ b);
}
//5:一次搞定
public static void test5(int a, int b) {
b = (a + b) - (a = b);
System.out.println("===5:一次搞定 ===");
System.out.println("a = " + a + "; b = "+ b);
}
}