Re: [問題] 巢狀迴圈
先做個引言。
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
08/18 22:27, 1F
推
08/18 22:52, , 2F
08/18 22:52, 2F
→
08/18 23:11, , 3F
08/18 23:11, 3F
→
08/18 23:12, , 4F
08/18 23:12, 4F
討論串 (同標題文章)