Re: [問題] for迴圈的小問題...。

看板C_and_CPP作者 (藍影)時間15年前 (2010/10/28 22:17), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/4 (看更多)
應該是你對 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
= = , 抱歉 p 大,推文不小心被我砍了,有得救嗎 = =
10/28 22:32, 1F

10/28 22:35, , 2F
第三次應該輸出2
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)
文章代碼(AID): #1CoONpSW (C_and_CPP)
文章代碼(AID): #1CoONpSW (C_and_CPP)