java基础——变量的交换
说到变量的交换我们第一时间想到的就是使用第三方的变量来进行交换,如下:
public static void main(String[] args) {
int a = 40;
int b = 60;
int c;
c= a; //c = 40
a = b; // a = 60
b = c; // b = 40
}
上面代码使用第三方变量就把a和b的值交换过来了,但是,如果不使用第三方变量,可以用什么方法交换两个变量呢?这个问题面试中也经常问道,下面就来看看不使用第三方的变量如何交换两个变量的值吧!
第一种方法:使用数学运算符
使用加减运算:
public static void main(String[] args) {
int a = 40;
int b = 60;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a为:"+ a); // 60
System.out.println("b为:"+ b); // 40
}
或者使用乘除运算:
public static void main(String[] args) {
int a = 40;
int b = 60;
a = a * b;
b = a / b;
a = a / b;
System.out.println("a为:"+ a); // 60
System.out.println("b为:"+ b); // 40
}
第一种方法:使用赋值方法
上面的代码看起来比较臃肿,这个方法一条代码就解决了!
public static void main(String[] args) {
int a = 40;
int b = 60;
a = b + (b = a) * 0 ;
System.out.println("a为:"+ a); // 60
System.out.println("b为:"+ b); // 40
}
看不懂上面代码的朋友需要还好的学习下Java的基础了!我们可以拆开右边看:首先 b = 60 ,a = 40,套入代码里面就是 60 + ( 40 ) * 0,为什么括号里面是40就不用多说了吧,a 的值赋值给了b 所以b现在等于40了那么括号里面也就为40,先算乘除后算加减,60 + ( 40 ) * 0 结果就等于60,这样就把a和b的值给换过来了!
以上就是除了使用第三方变量换值外的另外两种思路,你们有其他更好的思路吗?