[問題] for迴圈中宣告計次變數

看板C_and_CPP作者時間8年前 (2015/12/22 01:07), 8年前編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
先貼程式碼: http://pastie.org/10645898 //以下為示意code ... int a=5; ... for(int i=1;i<=a;i++){ cout << i; if(i != a) cout << ","; } ... 如題,迴圈中的if是為了讓最後一個不要有"," 整個程式中像這樣的迴圈一共有三個,但是很奇怪的是前兩個都可以正常跑 第三個就有錯誤 編譯的錯誤信息如下: name lookup of 'i' changed for new ISO 'for' scoping using obsolete binding at 'i' 上網google後的結果大多是說計次變數需要宣告,可是我有宣告呀 沒道理第三個不能跑,求解 -- ▁ ▁▁▂▄▆▆▆▅▃ ▄▄▄ .︶. ██▊_▂_██ ▆▆▆▃▃▃ ▃▃▃ ▃ ▃▃▃ ◤ ▅ ▄▄▄╭╮▄▄▄▄▄ ║ {︶} ║ ◥▉ ▃▃▄ ▄▄▄ ︶ ︶ vcfsvjf -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.51.130.170 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1450717635.A.A81.html

12/22 01:21, , 1F
for loop看起來沒有用大括號包起來
12/22 01:21, 1F
抱歉是我打錯了,修改後才是正確的程式碼(有加大括號) 以上問題就是在修改後的code出現的

12/22 01:29, , 2F
樓上正解, 於是 if(i!=a) 的 i 在迴圈外面
12/22 01:29, 2F
if原應在迴圈裡,是我PO文時打錯了,已修改

12/22 01:30, , 3F
新標準規定 for(int i...) 的 i 只在 for 裡有效
12/22 01:30, 3F
這點我知道,但是我在三個for裏頭都有宣告 i

12/22 01:30, , 4F
(講新標準是指錯誤訊息裡的 new ISO 'for' scoping)
12/22 01:30, 4F
※ 編輯: xxxx5801 (27.51.130.170), 12/22/2015 01:40:47 ※ 編輯: xxxx5801 (27.51.130.170), 12/22/2015 01:43:28

12/22 02:23, , 5F
你要不要整段貼上來? 你文中說沒問題 可是現在就是有問
12/22 02:23, 5F

12/22 02:23, , 6F
題 這種情況只能直接看code中有沒有你沒注意到的
12/22 02:23, 6F
感謝建議 已修改 ※ 編輯: xxxx5801 (27.51.130.170), 12/22/2015 02:49:47

12/22 02:59, , 7F
第三個 for 迴圈 少一個左括號 {
12/22 02:59, 7F
看來是我眼花了0.0 明明檢查了好幾次就是沒看到 感謝以上幾位的回答 ※ 編輯: xxxx5801 (27.51.130.170), 12/22/2015 03:42:16
文章代碼(AID): #1MU373g1 (C_and_CPP)