关于java中交换两个数

来源:百度知道 编辑:UC知道 时间:2024/07/02 05:22:26
public class Exchange{
public static void main(String[] args){
int a=2,b=7;
System.out.print("原来的值是:a="+a);
System.out.println(" b="+b);
a=a+b;
b=a-b;
a=a-b;//这部分不理解,这样不是a={(a+b)-(a-b)}=2b吗?怎么算出来的啊?
System.out.print("改变后的值为:a="+a);
System.out.print(" b="+b);
}
}

因为进行过运算之后 a b不再是以前的2和7了。
a=a+b //现在的值为 a=9
b=a-b //b=9-7 这里的a已经改变了
a=a-b //a=9-2 上面a和b的值都已经改变了
你的那种理解方法是不对的,因为a b的值在改变,所以你在运算之前的a b和准备进行运算的a b的值是不一样的

不理解啊,我来告诉你.
a=a+b 之后 变量a的值就不再是2了,而是2+7=9;
在这个基础上.
b=a-b 就是9-7=2; 就是原来a的值了,就是现在b=2
再之后
a=a-b; 就是9-2=7; 就是原来b的值了,现在a=7

A=A+B 现在A的值就是A与B的和
B=A-B 现在B的值就是(A+B)-B因为运行上步 A就是(A.B的和)在减B 不就是A了吗
A=A-B 要知道运行上不 B的值就是原来的A值 用最上面得的A - 最开始的A值就得到B值
例如 A=1;B=2;
A=A+B 现在A=3
B=A-B 就是 3-2=1 现在B就=1了
B=A-B A还是3 没有改变 而B不是是2了 而是1; 3-1 不就是2了
在不明白 我也没有办法了

。。。

a=a+b //a的值 现在等于 原来a+b的和
b=a-b //b的值 现在等于 原来a+b的和减b 就是原来a的值
a=a-b //a的值 现在等于 原来a+b的和减b 这里b已经等于原来a的值 所以就是原来a+b的和减a 就是原来b的值

这样ab就交换了

1.a=a+b;
2.b=a-b;
3.a=a-b;
应该是这样的:
第2步执行完了因该是这样的:
b=(a+b)-b;//结果就是b等于了a
第3步执行完了,把第2步执行完了的b带进去,在把第一步执行完了的a带进去
a=(a+b)-((a+b)-b);//你可以打开看下是a=b;
所以两个值交换了

第一步a=a+b后a=9,b=7;
第二步b=a