i+=1和i=i+1是否彻底等价

可能有不少程序员认为i+=1只是i=i+1的简写方式,其实否则,它们一个是用简单赋值运算,一个使用复合赋值运算,而简单赋值运算和复合赋值运算的最大区别就在于:复合赋值运算符会自动地将算法结果转型为其左操做数的类型。看看以下的例子就能够看到差异在哪里。java

题目大概意思以下:
例如程序员


下两个代码块,判断这两个代码块是否正确
块A:
算法

short i=0;
 i=i+1;code

块B:class

short i=0;
 i+=1;语法

详解:块A不正确,存在语法错误,缘由为:i=i+1;语句中右边的i+1的结果为int类型,而左边为short型,不能将int类型自动转化为short型,所以,不正确。程序

而为何i+=1;不存在类型的转换的缘由在于:复合赋值运算符会自动地将运算结果转型为其左操做数的类型。所以这是正确的。co

相关文章
相关标签/搜索