Re: [問題] 巢狀迴圈

看板C_and_CPP作者 (藍影)時間14年前 (2011/08/18 21:59), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串2/2 (看更多)
先做個引言。 for loop 裡面執行順序是這樣的 for( (1)初始值設定; (2)判斷條件; (3)遞增值 / 遞減值 (或其他動作)) { (4) 述敘; } 而 loop 的動作順序是 (1) -> 只跑一次 (2) -> 如果 (2) 成立的話就跑 (4), (3) (4) -> (2) 成立的話才執行 (3) -> (2) 成立的話才執行 (2) (4) (3). (2) (4) (3).... 一直跑到 (2) 不成立為止。 順序非常重要! ------ ※ 引述《shile775 (笑看人生)》之銘言: 由於不好說明,我們把問題先簡化,只考慮內層回圈的狀況 : #define ROWS 6 : int i=3; : { : for((1)ch = 'F'; (2)'F' <= (ch+i); (3)ch--) : (4) printf("%c", ch); : putchar('\n'); : } ---- 1. (1) 初始設定, ch = 'F' ---- 2. (2) ch = 'F', 'F' <= (ch+3) ('F'+3='I') 成立, 執行以下動作 (4) 輸出 ch ('F') (3) 執行 --ch , ch = 'E' ---- 3. (2) ch = 'E', 'F' <= (ch+3) ('E'+3='H') 成立, 執行以下動作 (4) 輸出 ch ('E') (3) 執行 --ch , ch = 'D' ---- 4. (2) ch = 'D', 'F' <= (ch+3) ('D'+3='G') 成立, 執行以下動作 (4) 輸出 ch ('D') (3) 執行 --ch , ch = 'C' ---- 5. (2) ch = 'C', 'F' <= (ch+3) ('C'+3='F') 成立, 執行以下動作 (4) 輸出 ch ('C') (3) 執行 --ch , ch = 'B' ---- 6. (2) ch = 'B', 'F' <= (ch+3) ('B'+3='E') 不成立, 跳出回圈 ---- 於是最後跳出回圈後,總共輸出了 FEDC。 上述以 i=3 為例說明,其他 i=0, i=1, i=2, i=4... ,也一樣。 -- When I saw the turth of love, I feel the pain which the world brings to me. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.78.41

08/18 22:27, , 1F
T大寫的好詳細(worship)
08/18 22:27, 1F

08/18 22:52, , 2F
太佩服了,給T大讚一個!!
08/18 22:52, 2F

08/18 23:11, , 3F
(3)(4)要倒過來吧?
08/18 23:11, 3F

08/18 23:12, , 4F
唷!下面有講順序(還以為順序等於數字順序)
08/18 23:12, 4F
文章代碼(AID): #1EJHghBu (C_and_CPP)
文章代碼(AID): #1EJHghBu (C_and_CPP)