黑马程序员技术交流社区

标题: 当 a b 都是基本类型变量时,a += b 和 a = a + b 的效果有区别吗? [打印本页]

作者: 青青子衿1023    时间: 2016-11-28 09:48
标题: 当 a b 都是基本类型变量时,a += b 和 a = a + b 的效果有区别吗?
当 a b 都是基本类型变量时,a += b 和 a = a + b 的效果有区别吗?

作者: 15518971607    时间: 2016-11-28 09:53
没有区别,a+=b   会强制类型转换

作者: taany    时间: 2016-11-28 09:54
发送评论积极处理

作者: 青青子衿1023    时间: 2016-11-28 09:55
15518971607 发表于 2016-11-28 09:53
没有区别,a+=b   会强制类型转换

如果类型相同呢?比如都是int或都是float会报错吗

作者: 青青子衿1023    时间: 2016-11-28 09:56
taany 发表于 2016-11-28 09:54
发送评论积极处理



作者: 15518971607    时间: 2016-11-28 10:02
青青子衿1023 发表于 2016-11-28 09:55
如果类型相同呢?比如都是int或都是float会报错吗

你可以试一下,如果遇到问题。就自己试一下,验证一下

作者: 青青子衿1023    时间: 2016-11-28 10:03
15518971607 发表于 2016-11-28 10:02
你可以试一下,如果遇到问题。就自己试一下,验证一下

谢谢

作者: lc0356    时间: 2016-11-28 10:27
有,byte类型会报错。一个会强转,一个是类型转换错误。
eg:         byte a= 1;
                int b = 2;
                a += b;  // 正确
                a = a +b; // 编译错误
作者: 一蓑烟雨任平生@    时间: 2016-11-28 10:59
有区别,假设a为float,b为int.
在进行加法运算时,会对a进行类型提升.如果执行的是a+=b,将两者和重新赋予a的时候会自动将类型转化为float,不会报错;如果执行的是a=a+b,将两者之和重新赋予a的时候,不会自动转化类型,会报类型不匹配的错误。初学者,不对的地方请大神指正~

作者: 201314    时间: 2016-11-28 12:44
好好学习,天天向上。
作者: leojr    时间: 2016-11-28 14:15
有区别的





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