A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

方法之一的一个过程如下:

int n=3,m=8;
n=n+m;
m=n-m;
n=n-m;
这个过程没搞懂?有大神跟我解释一下吗?

22 个回复

倒序浏览
你把n当成 另一个变量temp
回复 使用道具 举报
n = n+m // 把n+m的值赋值给n,此时n的值为11
m=n-m  // 把n-m的值赋值给m,注意这里的n是赋值以后的值,也就是m=11-8 m=3
n= n-m  // 同样的道理,此时等号右边的n=11,m=3,所以此时n=11-3 n=8 互换完成
回复 使用道具 举报
int n=3,m=8;
n=n+m;//n = n+m = 3+8 = 11;
m=n-m;//m = n+m = 11-8 = 3;
n=n-m;//n = n-m = 11-3 = 8;
其实就是说,3和8的和(11),减去3就是8,和减去8就是3;
换言之,n和m的和,减去n就是m,和减去m就是n。
回复 使用道具 举报
n=n+m;
m=n-m=(n+m)-m=n;
n=n-m=(n+m)-n=m
回复 使用道具 举报
int n=3,m=8;
n=n+m;//n=11
m=n-m;//m=11-8=3
n=n-m;/n=11-3=8
回复 使用道具 举报
开发一般不这样用啦
回复 使用道具 举报
总结一下:
方法一: 第三方变量
方法二: 加法方式
         a = a + b;
         b = a–b;
         a = a–b;
方法三: ^异或位运算符
方法四: 一句话搞定
        a = (a+b) - (b=a)
回复 使用道具 举报
zx0210 中级黑马 2015-9-17 00:28:07
9#
开发一般用第三方或者亦或运算符
回复 使用道具 举报
异或比较简单高效吧
回复 使用道具 举报
xiaote0225 发表于 2015-9-17 00:16
总结一下:
方法一: 第三方变量
方法二: 加法方式

这个好强
回复 使用道具 举报
lvfx 来自手机 中级黑马 2015-9-17 07:21:25
12#
把每一步执行以后m和n的值写下来就能看懂了,实际上就是要理解给产量赋值
回复 使用道具 举报
lvfx 来自手机 中级黑马 2015-9-17 07:22:52
13#
lvfx 发表于 2015-9-17 07:21
把每一步执行以后m和n的值写下来就能看懂了,实际上就是要理解给产量赋值 ...

给变量赋值
回复 使用道具 举报
一般都用第三方变量吧
回复 使用道具 举报
=号是赋值符号,把11赋值给n,m值没变,那么把n-m也就是3赋值给m,再把8赋值给n,就实现了交换
回复 使用道具 举报
JYcainiao 来自手机 中级黑马 2015-9-17 08:58:36
16#
不是可以用一个容器来转换么,非得加减重新定义吗?
回复 使用道具 举报
=号是赋值符号,把11赋值给n,m值没变,那么把n-m也就是3赋值给m,再把8赋值给n
回复 使用道具 举报
变量交换。。。。
回复 使用道具 举报
一共有三种,至少掌握一种
回复 使用道具 举报
直接用临时变量好了呀,至少第一个想法不是楼主的方法...
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马