2007年8月24日星期五

switc分支中initialization of 'j' is skipped by 'case' label错误

....
case 1:
for(int j=1;j<11;j++)
vc2->;push_back(j);
break;
case 2:
for(int j=0;j<11;j++)
vc2->;push_back(j*2);
break;
....
编译出错信息:
c:\microsoft visual studio\myprojects\jd2\jd.cpp(19) : error C2360: initialization of 'j' is skipped by 'case' label
为什么啊
请教请教

重复定义吧
你定义了j两次

请教请教

-->
没这回事吧?C++允许局部定义的,用来做循环控制的变量一般都是随用、随时定义。编译提示是,case可能跳过j的初始化。
估计是VC的问题。前几天我还写了一个含有类似语句的程序,gcc/g++编译没问题。

请教请教

:shock:

请教请教

VC 6 不能这样。
标准 C++ 是支持的。

请教请教

你是不是在后面又用到变量j了?
这种情况还是把j放到函数头里去定义吧。


muyilion
帅哥哟,离线,有人找我吗?


等级:新手上路
文章:13
积分:274
注册:2005年12月26日

下来了,可是编译时出现如下错误:
error C2360: initialization of 'i' is skipped by 'case' label
f:\xrx-exam\binarytree\main.cpp(830) : see declaration of 'i'
Error executing cl.exe.
求助!

2005-12-27 18:56:00
热情依然
帅哥哟,离线,有人找我吗?


来自:广州市
等级:版主
威望:22
文章:691
积分:15676
注册:2005年4月5日

你在每个case后加个大括号就可以了,这个是重复定义的问题,可能你的编译器不是vc.net如果是用vc6.0就会出现这个问题。有时间我会改改


c++/C + 汇编 = 天下无敌
2005-12-29 9:48:00
nqq622
帅哥哟,离线,有人找我吗?


等级:新手上路
文章:11
积分:136
注册:2006年1月4日
不错,我还得加油啊!

没有评论: