作者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/cn.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