C語言中 int i 0執行語句while i4 後i的值是5而不是4,為什麼

時間 2021-10-17 05:02:00

1樓:符玉蓉亥月

這道題的關鍵是i++與++i的區別,i++是先以i的值作為整個表示式的值,即i++=4,然後i自加1

++i則是先以i+1作為該表示式的值,i也就是i+1的值。

具體點,該題可以這樣分析:

ii++

while(i++<4)00

ture11

ture22

ture33

ture44

false

5所以你此時輸出的i=5

2樓:

i++是先運算後自加,也就是說在i為3的時候,首先判斷i<4,然後i進行自加變成4.然後執行while內部,然後在進行判斷,這時候i為4.i<4為假.

但是還要執行自加操作就是5了.

3樓:彬彬有禮

先取i值判斷,再i自增,無論條件是否成立,自增總是在判斷之後做了,所以當i值為4條件不現滿足時,繼續做了最後一個i自增,於是i 在迴圈體之外時是5了。

4樓:匿名使用者

while(i++<4) //當i=4時,i++<4不成立,判斷後,i=5。

printf("%d\n",i); //這兒當然是輸出5了。

5樓:匿名使用者

你要明白 i++是後加 是判斷完後 再次加一 原來 i++是4 之後i就變成5了

6樓:匿名使用者

i++與++i的區別,i++是執行完比較後將i+1,++i是先將i+1,然後將新數進行比較

為什麼for(int i=0;i<9;i++) 在c語言中是錯誤的?

7樓:匿名使用者

標準抄c語言這樣

寫會出現語法錯誤的,如果使bai用t20,這樣寫肯定會出du錯,無zhi法編譯,正確的寫法是:在函dao數的開始申明變數,之後再使用變數,比如:

void fun()

後來很多整合開發環境,是支援for(int i=0;i<9;i++)這種寫法的,不過我的建議還是按照標準的較好,這樣在任何情況下都不會出錯。

在c語言中定義int i=1;執行語句while(i++<5)後i的值為6,為什麼?

8樓:千奕森良才

i++<5表示先取i的值和5比較,然後再執行++操作,所以,當i=5的時候不滿足while條件而退出迴圈,然後還會執行一次++操作,所以i=6

9樓:潭月肇揚

while(i++<5);

++在後來

,先自取i的值和5比較,然後i自動加1

當i=4時,執行4++<5,成立,i變成5執行5++<5,不成立,你怎麼知道不成立?因為執行了這個表示式,所以i將自動加1變成6

so,i的值最終為6

10樓:看灰過來了

while(i++<5);

++在後,先取i的值和5比較,然後i自動加1當i=4時,執行4++<5,成立,i變成內5執行5++<5,不成立,你怎麼知道不成立?容因為執行了這個表示式,所以i將自動加1變成6

so,i的值最終為6

11樓:

當i不滿足條件時此時的i值是5,跳出迴圈時,又自增1

c語言若int i=10;則執行語句while(i-->5):後,變數i的正確值為多少 正確值是多少,或者題目錯了嗎?

12樓:

i-->5是先判斷i是不是大於再i自減1

當i=6的時候是對的

i=5的時候

不成立i再自減退出

i=4退出的時候i=4;

13樓:匿名使用者

i--是先取值後減1的操作 所以while迴圈中i的值分別從10,9,8.。。遞減

到i=6 時滿足大於5的條件 然後i做減1的操作 此時i的值變成5進入下一次迴圈判斷i=5 不滿足大於5的條件 迴圈語句不執行 就是說迴圈執行全部完成了 但是同時i還是要減1的 變成4

所以i最後的值是4

c語言問題:執行語句for(i=1;i++<4; ); 後,變數i的值是多少啊??

14樓:鄒勤

答案是c哦,回答選b的,這是個迴圈題,因為++比<的優先順序高,所以先執行i++進行i的自增運算此時i等於2,繼續迴圈直到i的值大於4時不符合條件自動跳出迴圈

15樓:匿名使用者

5 i++是先使用i,然後在自加

16樓:匿名使用者

樓主為什麼要問這種問題呢?找個編譯器試試不就好了

17樓:匿名使用者

選b.給你把他轉成容易看懂的.

int i = 1;

for(;;)//如果i<4就什麼也不做,直接跳到下一行else//如果i>=4就直接跳出迴圈

i++;//最後把i自加

}當i=3的時候,不會跳出迴圈,所以i自加,i=4了當i=4的時候,就會條出迴圈,i不會自加了.

所以,最後i=4

c語言題目:執行語句for(i=1;i++<4; );後變數 i 的是 a 3 b 4 c 5 d 不定 這道題我算了一個晚上啊

18樓:匿名使用者

選擇c~因為當i=4時,i先與4做比較,然後自增為5,退出迴圈~

i++是先對i進行操作,如將i值賦給別的變數,然後自增,例如:j=i++,j的值就是i自增之前的值。

19樓:匿名使用者

選c 5

迴圈會一直做, 直到i++<4不滿足

初次不滿足時, i++中的i=4, 此時還會有一次++操作, 因此執行完後i = 5

20樓:分為金

你算了一個晚上?應該是想了一個晚上吧 答案是c 毫無疑問 樓上的解釋正確

在c語言中int i=10; while(i-->0) ; printf("%d",i);結果是?,為什麼?

21樓:匿名使用者

首先,--優先等級比》高,而且i--是先用再執行的,當i=0的時候,雖然while語句滿足了終止條件,但i會先進行i>0的比較,然後再會進行自減變成-1,最後再進行輸出的,所以結果是-1

22樓:

結果是-1。

因為先判斷表示式i-->0,先取值即10>0為真,再--,此時i=9依次直到i=0,表示式不為真,此時i=-1,並且退出while迴圈。執行printf("%d",i);

列印輸出:-1

23樓:無悔每一秒

-1主要問題在i-->0

這裡會先判斷i>0後, i才自減1

所以當i=0時不滿足,跳出while迴圈,還會進行自減,所以i=-1

24樓:匿名使用者

-1因為while()後面直接加了";"

那你的while迴圈其實就是

i--while(i>0)

i--;

(只是i--的迴圈)

當i=-1時跳出迴圈,輸出結果i

就為-1

C語言怎麼退出while迴圈,c語言中while的用法

不不見不念 if條件語句寫錯了 if a 判斷字串相等不能用等號 if strcmp a,0 要這麼寫 while 是乙個迴圈體,退出迴圈體的方法有 1 迴圈體條件 不成立,如 while a 0 當 a 0 的時候,條件 a 0不成立,while 迴圈結束,退出 while 迴圈。2 在迴圈體內使...

請問,c語言中return語句後,還執行後面的語句不

不執行,直接返回到呼叫子函式的位置,並返回返回值 不執行,已經返回主函式了。在c語言中,乙個函式的結束都是以return為出口的。在乙個函式中無論在 執行到return則結束該函式!對於有返回值的函式return乙個該函式返回值型別的數,對於無返回值void型別的函式,則遇到可能會碰到return ...

c語言中語句“y x1”是怎麼執行的

埃德蒙 放後邊 x先參與 運算 計算結果賦給y 之後x值自增1。如果x 3,y x 1 之後y 2 x 4就是要記住一個規則 在變數之前時 值先自增1 再參與其他運算,在變數之後 先參與其他運算 變數值再自增1 關燁韋 先執行x 1,然後再賦值給y,然後再x 如果換成y x 1 就會先自增,再運算。...