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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© e644638045 中级黑马   /  2014-6-29 10:55  /  1288 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int i=1
i+=i是什么意思,求回答

8 个回复

倒序浏览
这就要说到编程中,=号代表的是赋值操作,是把=号右边的值赋给=号左边;

int i=1; // 声明变量i,并令i = 1;
i+=i;  //这是简写,等价于 i = i + i;

i = i + i ,就是先算i+i,然后把结果赋给i

最后i = 2;
回复 使用道具 举报
首先说一下:i=i+1与i+=1,这两个运算符结果是等价的,但理解不是等价的。因为“+=”运算符 内涵了强制转换功能等价于i=(int)(i+1)
回复 使用道具 举报
还有二楼说
i = i + i ,就是先算i+i,然后把结果赋给i
其实是不对的“+=”运算符加法运算与赋值运算时同时进行的,不存在先算谁,后算谁。
回复 使用道具 举报
学习了.......
回复 使用道具 举报
int i=1;声明变量i并赋值
i+=i;   i=i+i;的简写
回复 使用道具 举报
本帖最后由 ⋛⋌⋚JEEP 于 2014-7-3 20:31 编辑

楼上见解都差不多了,我总结一下和补充一点吧!

  1. int i = 1;
复制代码
//声明变量i,将1赋值给变量i,

  1. i += i;
复制代码
//等价于,
  1. i = i+i;
复制代码
;另外,这个“+=”运算符含有隐式进行强制类型转换的 功能,比如,
  1. short s +=2
复制代码
等于
  1. short s =(short)(s+2);
复制代码


再补充一点区别:
  1. i=i+i;
复制代码
,需要右边相加完再赋值左边,2步运算;
  1. i+=i;
复制代码
只需要1步运算,效率高些。
回复 使用道具 举报

你解释下啊,你都不解释的
回复 使用道具 举报
e644638045 发表于 2014-7-1 12:15
你解释下啊,你都不解释的

额,我也是看过人家的答案,才知道的,以前就没去想过........
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马