Re: [問題] FOR迴圈

看板C_and_CPP (C/C++)作者 (Alien)時間16年前 (2009/11/18 10:43), 編輯推噓5(5010)
留言15則, 3人參與, 最新討論串4/4 (看更多)
※ 引述《ljhgc (是嚮往亦或逃避)》之銘言: : ※ 引述《ss7788159 (Stargazer)》之銘言: : : 剛剛看了某某樣本 : : 發現其中有一段: : : int i=0; : : for(i++;i++<10;i++) : : 這是什麼意思呀? : : 一般不都是用 : : for(i=0;i<10;i++)嘛? : : 懇請指教 : : 我想知道for(i++;i++<10;i++)的含意 : 那如果是展開成這樣呢... : int i = 0; : i++; \\初始值的 : while( i < 10 ) : { : i++; \\比較的 : printf("%d\n", i); : i++; \\要出來for之前的 : } 應該是 int i = 0; i++; while (i++ < 10) { // do something i++; } 才對. 你的寫法, 離開 while 的時候, i 不會再 increment 但原本的語意是, increment i 然後再用 increment 前的檢查 < 10 即是完成整個 loop 後, i 的值會大於 10 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

11/18 10:45, , 1F
大家眼睛在比利的XD
11/18 10:45, 1F

11/18 10:48, , 2F
比利... 球王嗎? XD
11/18 10:48, 2F

11/18 10:50, , 3F
也不是真的在比利, 只是把 for->while 的展開做得基本
11/18 10:50, 3F

11/18 10:50, , 4F
一點而已, 額外的語意修改還是小心一點比較好
11/18 10:50, 4F

11/18 10:52, , 5F
XDDD 話說, 小弟還真的滿常利用loop完的index繼續後面
11/18 10:52, 5F

11/18 10:52, , 6F
做處理或判斷loop的結果呢:)
11/18 10:52, 6F

11/19 22:02, , 7F
您寫的東西似乎和我是一樣的...您可以在您的do something那
11/19 22:02, 7F

11/19 22:03, , 8F
把i值印出來看 保證值會一模一樣沒差 我的寫法只是要讓原po
11/19 22:03, 8F

11/19 22:04, , 9F
更清楚for裡面三個式子所表達的意思
11/19 22:04, 9F

11/19 22:05, , 10F
或許是我註解寫的模糊讓您誤解了吧
11/19 22:05, 10F

11/19 22:06, , 11F
\\比較的 ===> \\比較後的
11/19 22:06, 11F

11/19 22:13, , 12F
不一樣, 您的在迴圈離開的時候會少一次i++....:)
11/19 22:13, 12F

11/19 22:15, , 13F
這個小地方在後續有用離開loop的i進一步使用或做check
11/19 22:15, 13F

11/19 22:15, , 14F
時就會有錯了; 所以小弟在5F才會這樣子推^^||
11/19 22:15, 14F

11/19 22:35, , 15F
我了解您的用意了 我沒想這麼後面...哈哈...
11/19 22:35, 15F
文章代碼(AID): #1B0rzH3_ (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
4
10
完整討論串 (本文為第 4 之 4 篇):
4
10
5
9
5
17
文章代碼(AID): #1B0rzH3_ (C_and_CPP)