黑马程序员技术交流社区
标题:
求解 =+ 和 += 的区别
[打印本页]
作者:
jsfjb
时间:
2012-10-31 17:09
标题:
求解 =+ 和 += 的区别
int b = 0;
b = b+10;
b+=10;
复制代码
代码很简单,但是,对这两个的运行原理模糊,请高手指点。
作者:
xuchulong1
时间:
2012-10-31 17:29
这个细细的追究起来有一点效率的问题:
b = b+10;
这里我们有一个对b进行加10 的操作,然后,我们再把这个得出来的结果赋值给 b,就是 做了一次加,一次赋值
然后 我们的 b +=10;这个的话 就想当于b++;我们就是直接对b进行了一个加10操作,效率相对高一点。
作者:
黑马杜鹏
时间:
2012-10-31 17:33
=,+=都是属于赋值运算符,与我们常理解的数学上的符号含义不同。
b+=10;//相当于b=b+10
只不过是一个赋值语句的2中不同表达方式而已。
作者:
张胜格
时间:
2012-10-31 17:39
其实是差不都的,但是+=效率高点,所以一般用后者比较多
作者:
李凤鸣
时间:
2012-10-31 17:44
看着下面,能看出运算上的区别
short b=1;
b=b+10 (b+10)结果为整形,4位,b为short型(两位),所以不对
b+=10 就是赋值运算,b等于b+10的和,有一个自动转换,相当于b=10的道理
作者:
林剑
时间:
2012-10-31 21:58
学习了。试了下把short 改成long 可以编译运行成功。
作者:
任雷彬
时间:
2012-11-1 12:26
1.首先, =+ 与 +=两个含义有别。
+= 是一个复合赋值运算符,只包含一个运算,那就是赋值。
而 =+ 则是包含两个运算,一个加法运算,一个赋值运算。
2.在运算时,不同类型参与运算时 +=赋值运算可以自动提升类型,不会损失精度。
而 =+则会损失精度。
如 byte i = 5;
i = i + 3 ; // i 会被强制提升 为int 类型,损失精度
i += 3;//类型自动提升,不会损失精度。
作者:
王梁星
时间:
2012-11-1 13:30
+=可以避免精度损失问题
作者:
邢晏玮
时间:
2012-11-1 14:21
+=的效率要高一些,b = b+10;是先运算然后再把值赋给了b,而+=就是直接进行就把赋给了b
如果都是同一个类型的数值进行运算应该没有太大的区别 要是不同类型的运行 b = b+10运算后就的手动的
进行数据的提升,如果不提升的话编译的时候就会出现精度的损失,而+=就不会出现这种状况因为是有系统自动提升的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2