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

相關文章
相關標籤/搜索