方法一:用第三方变量,最常用的,符合大多数人的思考方式
public static void main(String[] args){
test1(3,7);
}
public static void test1(int a,int b){
//交换a,b中的值
System.out.println("交换之前的值为:a="+a+",b="+b);
int temp;
temp=a;
a=b;
b=temp;
System.out.println("交换之后的值为:a="+a+",b="+b);
}
方法二:两个数进行相加运算,再相减算出(备注:这个方法有一点不妥,当两个数非常大时,两数的和可能超出int边界,就是出界,容易出错,请慎用)
public static void main(String[] args){
test2(3,7);
}
public static void test2(int a,int b){
System.out.println("交换之前的值为:a="+a+",b="+b);
a=a+b;//把a,b的和放在a中
b=a-b;//和的值减去b的值就是a的值,放入b中;
a=a-b;//现在b中放的是原来a的值,和减去b等于b的值,再放入a中,实现交换
System.out.println("交换之后的值为:a="+a+",b="+b);
}
方法三:运用异或可以很好的处理,这个方法属于技巧性质的 如:4^5^5=====》4,两次异或还是原来的数,扩展下,可利用这个进行加密
public static void main(String[] args){
test3(3,7);
}
public static void test3(int a,int b){
System.out.println("交换之前的值为:a="+a+",b="+b);
a=a^b;
b=a^b;//这个a其实就是a^b,再加上后边的^b,就还是a值,把a的值赋值给b;
a=a^b;//这个b其实就是a^b,在加上前边的a^,就是b的值,就是把b的值赋值给a;
System.out.println("交换之后的值为:a="+a+",b="+b);
}