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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

当 a b 都是基本类型变量时,a += b 和 a = a + b 的效果有区别吗?
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端

10 个回复

倒序浏览
没有区别,a+=b   会强制类型转换
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
15518971607 发表于 2016-11-28 09:53
没有区别,a+=b   会强制类型转换

如果类型相同呢?比如都是int或都是float会报错吗
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
taany 发表于 2016-11-28 09:54
发送评论积极处理


来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
青青子衿1023 发表于 2016-11-28 09:55
如果类型相同呢?比如都是int或都是float会报错吗

你可以试一下,如果遇到问题。就自己试一下,验证一下
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
15518971607 发表于 2016-11-28 10:02
你可以试一下,如果遇到问题。就自己试一下,验证一下

谢谢
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
lc0356 初级黑马 2016-11-28 10:27:29
8#
有,byte类型会报错。一个会强转,一个是类型转换错误。
eg:         byte a= 1;
                int b = 2;
                a += b;  // 正确
                a = a +b; // 编译错误
回复 使用道具 举报
有区别,假设a为float,b为int.
在进行加法运算时,会对a进行类型提升.如果执行的是a+=b,将两者和重新赋予a的时候会自动将类型转化为float,不会报错;如果执行的是a=a+b,将两者之和重新赋予a的时候,不会自动转化类型,会报类型不匹配的错误。初学者,不对的地方请大神指正~
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
201314 中级黑马 2016-11-28 12:44:51
10#
好好学习,天天向上。
回复 使用道具 举报
leojr 中级黑马 2016-11-28 14:15:45
11#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马