Re: [問題] for迴圈的小問題...。
這邊很適合跟 while 迴圈一起做討論,
int i = 0;
for( i; i < 1; ++i )
{
std::cout<<i<<"\n";//這邊是迴圈裡。
}
std::cout<<i<<"\n";//這邊是迴圈外。
關於執行順序倒也不用背, 試著寫出和它效力相等的 while
迴圈, 一切就會明朗許多
int i = 0;
// 開始新的 scope, 所以可以定義同名的變數來遮蓋
// 外面的
{
i; // 這行跟沒寫一樣
while( i < 1 )
{
// 以下是 for 迴圈的本體
std::cout<<i<<"\n";//這邊是迴圈裡。
// 以上是 for 迴圈的本體
++i;
}
}
// 結束新的 scope, 迴圈內定義的變數都不能使用
std::cout<<i<<"\n";//這邊是迴圈外。
想像這些掉換程式碼順序的動作編譯器會幫你完成, for 的
語法可以讓這些步進的程式碼聚集在一起, 不像 while般凌
亂, 試著執行這個等價的 while迴圈, 你就可以知道值的變
化.
--
◢████ ◢█ ◢██◣ ◢█ ◢███ ◢█ T-ara版怎麼去
████◤ ██ ◢██◣█ ██ ████ ██ s ~> T-ara
█/███ ██ ██ ██ █/█ ◢███ █/█ 歡迎您的光臨
████◤ ██ ██ ██ ██◤ ███◤ ██◤ 恩靜、智妍、孝敏
█/███ ██ █/██◤ ██ █/██ ██ 素妍、居麗、寶藍
████◤ █◤ ◥██◤ █◤ ████◤█◤ ψmakigoto123
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.115
※ 編輯: loveme00835 來自: 140.121.197.115 (10/28 22:46)
推
10/28 22:47, , 1F
10/28 22:47, 1F
推
10/28 22:56, , 2F
10/28 22:56, 2F
→
10/28 22:57, , 3F
10/28 22:57, 3F
推
10/28 23:00, , 4F
10/28 23:00, 4F
在迴圈裡定義的那種是屬於新的 scope裡的東西, 跟最
前面的 i 無關
不過VC6來說, 如果寫成這樣 :
for( int i = 0; i < 10; ++i )
;
int i = 2; // 再次定義 i
編譯器會報錯, 原因是對他而言, 這樣的寫法跟下面的
for 是一樣的 :
int i = 0;
for( ; i < 10; ++i )
;
int i = 2; // 再次定義 i
容易讓人混淆...
推
10/28 23:07, , 5F
10/28 23:07, 5F
推
10/28 23:10, , 6F
10/28 23:10, 6F
→
10/28 23:11, , 7F
10/28 23:11, 7F
→
10/28 23:11, , 8F
10/28 23:11, 8F
→
10/28 23:12, , 9F
10/28 23:12, 9F
推
10/28 23:14, , 10F
10/28 23:14, 10F
→
10/28 23:14, , 11F
10/28 23:14, 11F
不能在 for header裡定義, 但是可以在 body 裡定義
→
10/28 23:15, , 12F
10/28 23:15, 12F
我手上只有 C99的規格書, 也不太清楚是從什麼時候才
有, 不過 gcc是這樣告訴我的 :
'for' loop initial declarations are only allowed in C99 mode
推
10/28 23:22, , 13F
10/28 23:22, 13F
推
10/28 23:29, , 14F
10/28 23:29, 14F
我對 C 語言不熟, 有請板大...Orz
推
10/28 23:34, , 15F
10/28 23:34, 15F
p 大好神!
※ 編輯: loveme00835 來自: 140.121.197.115 (10/28 23:36)
推
10/28 23:37, , 16F
10/28 23:37, 16F
推
10/28 23:47, , 17F
10/28 23:47, 17F
推
10/28 23:56, , 18F
10/28 23:56, 18F
推
10/29 11:50, , 19F
10/29 11:50, 19F
推
10/29 20:44, , 20F
10/29 20:44, 20F
推
10/30 22:16, , 21F
10/30 22:16, 21F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 4 篇):