如果i 0,i i那麼i

時間 2022-05-12 15:35:08

1樓:匿名使用者

i++是先賦值後運算

++i是先運算後賦值

—————————————————————下面來看你說的情況

也就是int i = 0;

i = i++;

system.out.println(i);

在第一行

定義了i = 0;

第2行把 i(值為0) 賦值給了i

這個時候還沒有執行++的運算 所以i的值還是0然後執行i+1

這個時候i+1確實等於1 但是 這個值並沒有賦給任何變數第2行在執行的時候是

i = i;

然後 i + 1; 而不是i = i + 1;

所以在第3行的時候

i還是為0

_____________________________________

如果是int i = 0;

i = ++i;

system.out.println(i);

這樣在第2行

++i就是先運算後賦值那麼在賦值號的右邊的值就已經是1了然後賦值給i

這個時候i的值就是1了

2樓:匿名使用者

我之前也遇到過這個問題:注意兩點,1.++的順序。2.賦值的定義。

你已經知道第1點,就是++的順序,就是第2點概念不清楚。複製過程必須是:有等號的,也就是說把等號右邊的賦值給左邊的。

例如,a=b;把b賦值給a。那麼,本題i=i++;可以分解為:i=i,然後i++,可以看出在後一步,沒有「=」,也就是沒有賦值語句,沒有把i++賦值給i,所以i還是第一步的賦值,還是那個i。

3樓:匿名使用者

要知道i++ 是先賦值在運算. ++i是先計算在賦值.

那我們這樣來看i=0;i=i++;

順序應該是

1. i初始值是0

2. i=i 賦值運算. 左邊i是0了吧.

3. 等號右邊i在進行加1.

4.所以左邊的i還是0;

在換個思路.

i=0;

j=i++;

然後你把

i和j分別顯示就知道啦...

4樓:匿名使用者

i=i++是先賦值後加的

5樓:

int i = 0;

int j = i;

j = i;

i = i + 1; //i++是自增

i = j;

6樓:匿名使用者

i++=i+1,i+1賦值為i所以最後i=1

ii和ii 的區別理解,i 和 i命令有什麼區別?

i i和i i 的區別 1 執行時間不同。i先執行i 1,然後執行程式i 先執行程式,然後執行i 1 int i 8 printf d n i 首先執行加法,因此列印輸出為9 printf d n i 2 進行減法的順序不同。首先執行減法,列印輸出為8 printf d n i 首先執行程式。列印輸...

C語言基礎 定義i 5,那麼ii 等於幾?為什麼

來自華夏聯盟 這個答案根據編譯器的不同而不同 所以建議別寫這種自認為很有難度的 顯示自己的水平,寫出無歧義,高精度的 才是真的水平 還有問題可以繼續問我 我告訴樓主,這個結果是不確定的。標準c語言語法只定義了乙個表示式中只有乙個 的計算方法,也就是先用再加和先加再用,對於多個 的情況,並沒有明確規定...

for i 0 i10i 迴圈幾次

10次,因為判斷i 10是在i 迭代以後做的事情,所以前置和後置加加沒有區別 都是10次 i 和 i 僅僅是在使用的時候是取 前值還是 後值你這邊的for迴圈判斷語句執行之前已經做過過 的操作了所以不管是哪個,這個時候i的值都是 後的值了 都是10次 上邊兩個for語句可以這樣理解 第乙個可以認為是...