a=a+b 与 a+=b 有什么区别吗?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

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;

+=操作符会对右边的表达式结果强转匹配左边的数据类型,所以不再报错

猜你喜欢

转载自blog.csdn.net/qq_46119575/article/details/129677930