x+=y与x=x+y的区别

时间:2022-04-27 12:01:14

在一般情况下,x+=y与x=x+y的作用是等价的。


    但在有些情况下却并不是这样:
    如下代码:
    short s=3;
    s+=1;//编译通过
    s=s+1;//编译错误
   s=s+1编译错误时因为左边s+1的运算结果为int类型,而等号右边变量为short类型。类型不匹配而造成编译错误。
   s+=1编译正确是因为“+=”运算符在Java环境中会自动根据接收变量类型进行类型的强制转换。
   通过上述示例可以知道:x+=y等价于x=x+y和类型强制转换两个操作。