可能有很多程序员认为i+=1只是i=i+1的简写方式,其实不然,它们一个是用简单赋值运算,一个使用复合赋值运算,而简单赋值运算和复合赋值运算的最大区别就在于:复合赋值运算符会自动地将算法结果转型为其左操作数的类型。看看如下的例子就可以看到差别在哪里。
题目大概意思如下:
例如
下两个代码块,判断这两个代码块是否正确
块A:
short i=0;
i=i+1;
块B:
short i=0;
i+=1;
详解:块A不正确,存在语法错误,原因为:i=i+1;语句中右边的i+1的结果为int类型,而左边为short型,不能将int类型自动转化为short型,因此,不正确。
而为什么i+=1;不存在类型的转换的原因在于:复合赋值运算符会自动地将运算结果转型为其左操作数的类型。因此这是正确的。