[問題] for迴圈裏面 ++i的問題?

看板C_and_CPP作者 (火系見習魔法師 )時間7年前發表 (2018/05/19 23:41), 7年前編輯推噓4(516)
留言12則, 8人參與, 7年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) ubuntu14.04 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) gcc5.4 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) null 問題(Question): 我昨天刷題的時候 有一題我因為某個原因需要 for(int i=0;i<=5;++i) 結果發現 i是從0跑起? 正常來說不是應該要從1跑起嗎? 我的認知是++i這種東西在該行會直接生效 我嘗試了一下不用for,直接printf試試,結果跟我的認知是一樣的 我爬了置底文 for迴圈的先後順訊,莫非是第一輪不會++i? 但這個看法又不合理,如果我用i++,下一輪就會++,表示第一輪就有生效了? 半夜睡覺一直想這件事情都沒睡好,早上趕緊上ptt提問 還是各位大大不吝指教小弟 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) https://ideone.com/4eZvhh -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.204.38 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1526773297.A.6AF.html ※ 編輯: yongb (61.230.204.38), 05/20/2018 07:49:00

05/20 07:53, 7年前 , 1F
感謝神崎大大m(_ _)m

05/20 08:39, 7年前 , 2F
先初始化再判斷條件,然後執行回圈內的事情,最後更新i
05/20 08:39, 2F

05/20 08:40, 7年前 , 3F
再說一個statement是以分號為基準吧,跟一行沒關係
05/20 08:40, 3F

05/20 08:45, 7年前 , 4F
你把for一行分三行寫,就不會有這個問題了
05/20 08:45, 4F

05/20 08:47, 7年前 , 5F
單純省空間
05/20 08:47, 5F

05/20 10:49, 7年前 , 6F
看神崎大大貼的explanation就知道了
05/20 10:49, 6F

05/20 11:45, 7年前 , 7F
#1MNSjNfA不就用過i++了
05/20 11:45, 7F

05/21 00:03, 7年前 , 8F
改成while寫你可能就懂了
05/21 00:03, 8F

05/21 00:08, 7年前 , 9F
for第三個是每次跑完 要做的事最後要i++ ++i不都一
05/21 00:08, 9F

05/21 00:08, 7年前 , 10F
樣 +完再去第二的判斷式 成立再繼續
05/21 00:08, 10F
了解了,謝謝大大

05/21 20:04, 7年前 , 11F
你的for迴圈第一次就是跑i=0第二次1最後一次4,不懂你的
05/21 20:04, 11F

05/21 20:04, 7年前 , 12F
問題在哪,一直都是這樣吧
05/21 20:04, 12F
我原先的認知是 我後面寫++i 開始跑第一次迴圈前0就會變1了 但是看來我錯了QQ 我仔細想我會這樣認為的原因是可能以前看別人程式碼自以為有懂, 沒有自己試著去每一行都理解清楚、跑跑看 最後導致觀念有錯誤的連結......真的感謝各位大大幫忙解答m(_ _)m ※ 編輯: yongb (1.169.193.49), 05/21/2018 22:14:34
文章代碼(AID): #1R0BOnQl (C_and_CPP)