直入主题:
首先说一下思路:
思路一:现在已知的是两个变量的值(假设两个变量是a,b),以及两个值相加的和,
这样就可以想到,我们可以先让两个变量进行求和并且将结果放在其中一个变量内,
这时候肯定有疑问:这不就把其中一个变量的值给覆盖了吗?
其实进行完求和的这一步后,我们已知的是:
a中存放的是两个变量的和(假设将两个变量的和赋值给a),b中存放的是它原本的值,
这个时候就可以用得到的和减去b原本的值得到a原本的值放置到b中,
接下来再用a中存放的和减去现在b中的值得到a原本的值赋值给a,这样就可以完成
两个值得互换。
具体代码:
扫描二维码关注公众号,回复:
2477396 查看本文章
class Test{
public static void main (String []args){
int a,b;
a=3;
b=4;
a=a+b;
b=a-b;
a=a-b;
}
}
存在的问题:
这种方式最好不要用,因为如果两个整数的数值过大,会超出int范围,
会强制转换,数据会变化。
思路二:了解过异或的同学应该会清楚异或所具有的一个特性,
那就是一个数异或另一个数两次,还是等于它本身。可以根据
异或的这一个特点完成两个变量值的交换。
具体代码:
class Test{
public static void main (String []args){
int a,b;
a=3;
b=4;
a=a^b;//含义:a的值改变为a^b
b=a^b;//含义:b=a^b^b=a
a=a^b;//含义:a=a^a^b=b
}
}
总结:第一种方法不要使用,第二种方法多在笔试题中使用,在实际开发中应该申明第三个变量
用来作为中间变量帮助进行两个变量值得互换。