int i=0; while( i++ < 5); 循環結束后i的值是( ?A ? )。A)6??????? B)7?????? C)5?????? D)8就是這個題為什么是A啊,怎么算都是C,然后運行出來也是12345。可是6是對的。
9 回答
已采納
習慣受傷
TA貢獻885條經驗 獲得超1144個贊
i++ 先取值運算,后自增
分解開來就是這樣:
當i=0時,?i++ < 5 ?==> ?結果為:0 < 5, true, i的值最終為 1
當i=1時,?i++ < 5 ?==> ?結果為:1 < 5, true, i的值最終為 2
當i=2時,?i++ < 5 ?==> ?結果為:2 < 5, true, i的值最終為 3
當i=3時,?i++ < 5 ?==> ?結果為:3 < 5, true, i的值最終為 4
當i=4時,?i++ < 5 ?==> ?結果為:4 < 5, true, i的值最終為 5
當i=5時,?i++ < 5 ?==> ?結果為:5 < 5, false, i的值最終為 6 ?==> 跳出循環。
i的值變為6.
司風0
TA貢獻26條經驗 獲得超15個贊
首先說一下i++與++i的區別
i++指先賦值后運算,什么意思呢
比如
int i=0;
int t=i++;
這時t=0;然后輸出t和i的值,會分別輸出
i=1;
t=0;
而++i則指先運算后賦值
int i=0;
int t=++i;
這時t=1;然后輸出t和i的值,會分別輸出
i=1;
t=1;
這就能解釋你那道題了
當i++等于5時,你的循環結束,但是它是先賦值再運算的,也就是說,當循環結束,它還要自加一次,即5+1=6
所以i就等于6啦。
望采納
Change_32514
TA貢獻3條經驗 獲得超0個贊
i++就是用完i后再執行i+1,所以當i=5時跳出循環,雖然循環語句(也就是while后花括號里的語句)不再執行了,但循環條件里的i++還是要在執行一次
想成為攻城師的筱筱
TA貢獻15條經驗 獲得超22個贊
i++是賦值在前加1在后,而++i是加1在前賦值在后。
剛運行時i的初值為0,進入循環,相當于先將0賦給i,與5進行比較大小,再將i加1,如此循環:i等于4的時候,先和5比較,小于5,繼續下一次的循環并且i值加1為5,然后5進入循環,與5進行比較,不滿足,跳出循環時i值加1,所以輸出結果i的值是6
- 9 回答
- 0 關注
- 3045 瀏覽
添加回答
舉報
0/150
提交
取消
