Re: [問題] for迴圈的小問題...。
應該是你對 for loop 的特性沒有很熟的認識
for( (1)初始值設定; (2)判斷條件; (3)遞增值)
{
(4) 述敘;
}
而 loop 的動作順序是
(1) -> 只跑一次
(2) -> 如果 (2) 成立的話就跑 (4), (3)
(4) -> (2) 成立的話才執行
(3) -> (2) 成立的話才執行
(2) (4) (3). (2) (4) (3)....
一直跑到 (2) 不成立為止
: int i = 0;
: for(i; (2) i<3; (3) ++i) (4) std::cout<<i<<"\n";
為了說明清楚,我小小的改了一下上述東西
以你的例子來看,一開始 i 設為0
進入 loop 之後,
第一次進入 loop 時
會執行一次 (1), 但是 (1) 其實有寫跟沒寫一樣,
通常會在這裡寫成 i=0, 將 i 設初值。
i=0 => for(i; (2) i<3; (3) ++i) (4) std::cout<<i<<"\n";
0 < 3 , (2) 成立,
執行 (4) -> 輸出 0
執行 (3) -> ++i, 原本i=0, 變成 i=1,
第二次進入 loop 時
i=1 => for(i; (2) i<3; (3) ++i) (4) std::cout<<i<<"\n";
1 < 3 , (2) 成立,
執行 (4) -> 輸出 1
執行 (3) -> ++i, 原本i=1, 變成 i=2,
第三次進入 loop 時
i=2 => for(i; (2) i<3; (3) ++i) (4) std::cout<<i<<"\n";
2 < 3 , (2) 成立,
執行 (4) -> 輸出 2
執行 (3) -> ++i, 原本i=2, 變成 i=3,
X\
第四次進入 loop 時
i=3 => for(i; (2) i<3; (3) ++i) (4) std::cout<<i<<"\n";
3 < 3 , (2) 不成立, 不執行 (3) (4) 直接跳出回圈
於是你在 loop 裡面時,會輸出 0 1 2
但最後使得 loop 跳出的條件,會是 i=3,
所以你在 loop 外面再輸出i值,會得到3
上述只是一種應用
建議熟悉 for loop 特性為佳
---
感謝 purpose 指正.
---
※ 編輯: tropical72 來自: 180.177.76.142 (10/28 22:31)
→
10/28 22:32, , 1F
10/28 22:32, 1F
→
10/28 22:35, , 2F
10/28 22:35, 2F
→
10/28 22:36, , 3F
10/28 22:36, 3F
※ 編輯: tropical72 來自: 180.177.76.142 (10/28 22:37)
※ 編輯: tropical72 來自: 180.177.76.142 (10/28 22:38)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 4 篇):