java 两个变量交换内容的三种方法
- 有a = 10; b= 20;将这两个变量值交换
- 利用第三个变量c进行交换
public class SwapTest
{
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println("a:" + a + "\tb:"+b);
//定义一个变量c,通过变量c进行交换,用c存储a的值先
int c = a;
//再将b存储的值赋值给a
a = b;
//再将c中存储的值赋值给b
b = c;
System.out.println("a:" + a + "\tb:"+b);
}
}
结果
- 不用第三方变量
- 利用a+b,再进行加减a,b
public class SwapTest
{
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println("a:" + a + "\tb:"+b);
//利用a将a+b的值存储起来,a-->a+b
a = a+b;
//然后b --> b; a -b 相当于 (a+b) - b --> a,值再赋值给b,b --> a
b = a - b;
//a - b 相当于 (a+b) - a --> b,再赋值给a,a --> b
a = a-b;
System.out.println("a:" + a + "\tb:"+b);
}
}
结果
- 利用a ^ b ^ b还是原来的值
public class SwapTest
{
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println("a:" + a + "\tb:"+b);
//利用a将a+b的值存储起来,a-->a^b
a = a^b;
//然后b --> b; a ^b 相当于 (a^b)^b --> a,值再赋值给b,b --> a
b = a ^ b;
//a - b 相当于 (a+b) - a --> b,再赋值给a,a --> b
a = a^b;
System.out.println("a:" + a + "\tb:"+b);
}
}
结果
总结
- 有第三方变量交换的方式,字符串,数值都行
- 没有第三方变量的,a+b的方式,可能会造成相加后,超出原本变量类型的存储方法,而且是对于数值有效