黑马程序员技术交流社区

标题: a += b 和 a = a + b [打印本页]

作者: じぉL☆ve你    时间: 2015-3-16 11:16
标题: a += b 和 a = a + b
a += b 和 a = a + b 的结果是一样的,,它们有什么不一样的地方么?
作者: 2119391569    时间: 2015-3-16 11:31
a+=b,是一次运算;a=a+b是两次运算。
举个例子:
byte  a=3;假设b为一个整数值为5
a=a+b;编译失败,因为a会被提升为int类型,运算后的结果还是int类型,无法赋值给byte类型。
a+=b;编译通过,因为+=运算符在给a赋值时,自动完成了强转动作。

作者: じぉL☆ve你    时间: 2015-3-16 11:37
2119391569 发表于 2015-3-16 11:31
a+=b,是一次运算;a=a+b是两次运算。
举个例子:
byte  a=3;假设b为一个整数值为5

a+=b在运算时 把a=a+b运算时的类型提升和强转自动完成了?
作者: 2119391569    时间: 2015-3-16 12:19
じぉL☆ve你 发表于 2015-3-16 11:37
a+=b在运算时 把a=a+b运算时的类型提升和强转自动完成了?

+=是一个赋值运算符,是把左右两边的和赋给左边,内部会有一个自动转换的动作。好好看看毕老师射频中21、(赋值运算符和比较运算符)就OK了。其中有详细的讲解
作者: zzy1990    时间: 2015-3-16 13:01
学习了。
作者: じぉL☆ve你    时间: 2015-3-16 13:03
2119391569 发表于 2015-3-16 12:19
+=是一个赋值运算符,是把左右两边的和赋给左边,内部会有一个自动转换的动作。好好看看毕老师射频中21、 ...

谢谢了。。。。。
作者: 2119391569    时间: 2015-3-16 13:10
じぉL☆ve你 发表于 2015-3-16 13:03
谢谢了。。。。。

你学到哪里了?
作者: じぉL☆ve你    时间: 2015-3-16 14:24
2119391569 发表于 2015-3-16 13:10
你学到哪里了?

我学的是刘意老师最新版的java基础视频,,看完一遍了。但是学的不是很细,,正打算学第二遍呢。
作者: 等风的车    时间: 2015-3-16 15:08
a+=b会自动转换




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2