作者xxxx5801 ()
看板C_and_CPP
標題[問題] for迴圈中宣告計次變數
時間Tue Dec 22 01:07:08 2015
先貼程式碼:
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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1450717635.A.A81.html
1F:→ e8218268: for loop看起來沒有用大括號包起來 12/22 01:21
抱歉是我打錯了,修改後才是正確的程式碼(有加大括號)
以上問題就是在修改後的code出現的
2F:推 LPH66: 樓上正解, 於是 if(i!=a) 的 i 在迴圈外面 12/22 01:29
if原應在迴圈裡,是我PO文時打錯了,已修改
3F:→ LPH66: 新標準規定 for(int i...) 的 i 只在 for 裡有效 12/22 01:30
這點我知道,但是我在三個for裏頭都有宣告 i
4F:→ LPH66: (講新標準是指錯誤訊息裡的 new ISO 'for' scoping) 12/22 01:30
※ 編輯: xxxx5801 (27.51.130.170), 12/22/2015 01:40:47
※ 編輯: xxxx5801 (27.51.130.170), 12/22/2015 01:43:28
5F:→ overhead: 你要不要整段貼上來? 你文中說沒問題 可是現在就是有問 12/22 02:23
6F:→ overhead: 題 這種情況只能直接看code中有沒有你沒注意到的 12/22 02:23
感謝建議 已修改
※ 編輯: xxxx5801 (27.51.130.170), 12/22/2015 02:49:47
7F:推 Jruffian: 第三個 for 迴圈 少一個左括號 { 12/22 02:59
看來是我眼花了0.0 明明檢查了好幾次就是沒看到
感謝以上幾位的回答
※ 編輯: xxxx5801 (27.51.130.170), 12/22/2015 03:42:16