可能有不少程序员认为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