作者james732 (好人超)
看板C_and_CPP
標題Re: [問題] FOR迴圈
時間Tue Nov 17 22:38:32 2009
※ 引述《ss7788159 (Stargazer)》之銘言:
: 剛剛看了某某樣本
: 發現其中有一段:
: int i=0;
: for(i++;i++<10;i++)
: 這是什麼意思呀?
: 一般不都是用
: for(i=0;i<10;i++)嘛?
: 懇請指教
: 我想知道for(i++;i++<10;i++)的含意
for(
i++;
i++<10;
i++)
可以展開成這個樣子 (底下小括號
()裡是 i 的值):
int i = 0;
i++;
(1)
loop:
if (
i++ < 10) goto out;
(2)(4)(6)(8)(10)
{ 迴圈的 body }
i++;
(3)(5)(7)(9)(11)
goto loop;
out:
在那個 if 裡,由於是先判斷在遞增
因此雖然第五次時 i 已經變成 10,但還是會再做一次
然後 i 變成 11,回到 if 判斷時就會跳出迴圈了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
推 ss7788159:由於i++ 是起始值,所以一直是1對吧? 11/17 22:41
→ james732:一直是1? i的值一直在遞增啊? 11/17 22:41
※ 編輯: james732 來自: 140.117.171.46 (11/17 22:42)
推 VictorTom:j大不好意思, 小弟出張嘴, 就害您來展開了....Orz 11/17 22:43
→ james732:客氣什麼 XD 這種小事就讓我代勞吧 XDDD 11/17 22:43
推 ss7788159:抱歉我搞笑了,我搞懂了XD 11/17 22:43
→ ss7788159:真是麻煩您了 幫我展開!!!感激 11/17 22:44
→ james732:別客氣 不過這種寫法還真不值得鼓勵...XDD 11/17 22:45
推 ss7788159:謝謝! 11/17 22:48
推 VictorTom:XDDD 如果是考題就是有點邪惡的題目吧:) 11/17 22:50