提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
a=a+b 与 a+=b 有什么区别吗?
前言
a=a+b 与 a+=b 是两种常见的表示把 a+b 的和赋给新的 a 的表示方法。
很多朋友在开发的时候会认为这两种表达方式没有区别,仅仅是根据个人的使用习惯来决定。
在大多数的时候,这两种方法在使用的时候确实看不出区别,但其实这二者有一个细微的区别。
本文介绍了这两种使用方式的区别。
一、a=a+b 与 a+=b 的区别
一句话概括:+= 操作符会进行隐式自动类型转换,此处 a+=b 隐式的将加操作的结果类型强制转换为持有结果的类型,而 a=a+b 则不会自动进行类型转换。
具体代码示例:
byte a = 127;
byte b = 127;
b = a + b; // 报编译错误:cannot convert from int to byte
b += a;
报错截图:
二、易错点分析
以下代码有错吗?
short s1= 1;
s1 = s1 + 1;
答案:会报错!
正确写法:
short s1= 1;
s1 += 1;
+=操作符会对右边的表达式结果强转匹配左边的数据类型,所以不再报错