i 與 i 1的互換情況

2021-10-22 09:49:21 字數 485 閱讀 5031

只有語句中僅僅包含「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...