只有語句中僅僅包含「i=i+1」時,此時是可以互換的。
否則不一定可以。
因為:i++返回值為i,然後將i+1;i=i+1返回的是i+1(賦值語句之後的i值)
例如:if(i++) a=0;
這條語句是說「如果i不等於0,a賦值為0,並且i進行加一操作」,此時等價於if(i!=0)(注意,i++操作是在判斷過if條件後做的,不是條件成立後才做,這裡的寫法結果沒錯,但嚴格來說不等價,是錯誤的,只顯示操作的先後關係)
而例如:
if(i=i+1) a=0;
這是說「首先將i加1,然後看i是否為0,如果不為0,a賦值為0。此時等價於i=i+1; if(i) a=0;
所以同理i–與i-1也和上述情況一樣!
java中存在 i 1 小於 i 的情況嗎?
在jdk中,整形型別是有範圍的,最大值為integer.max value,即2147483647,最小值為integer.min value即 2147483648。對整形最大值加1,2147483648 越界了 那麼此時值為多少呢?結果是 2147483648,即是integer.min val...
存在使 i 1 小於 i的數嗎
在jdk中,整形型別是有範圍的,最大值為integer.max value,即2147483647,最小值為integer.min value即 2147483648。對整形最大值加1,2147483648 越界了 那麼此時值為多少呢?結果是 2147483648,即是integer.min val...
i i 1和i 1完全等價嗎?
可能有很多程式設計師認為i 1只是i i 1的簡寫方式,其實不然,它們乙個使用簡單賦值運算,乙個使用復合賦值運算,而簡單賦值運算和復合賦值運算的最大差別就在於 復合賦值運算子會自動地將運算結果轉型為其左運算元的型別 看看以下的兩種寫法,你就知道它們的差別在哪兒了 1 byte i 5 i 1 2 b...