求助!不知道错在哪

zafzap 2012-03-22 08:46:18


##include<iostream>
using namespace std;
const int strsize=10;
void showmenu();
struct bop
{
char fullname[strsize];
char title[strsize];
char bopname[strsize];
int preference;
};
int main()
{
showmenu();
bop num1[5]=
{
{"adj jda","dahj dad","sdssds ds",0},
{"yew", "we", "ewe",1},
{"adkj","sdk","sd",2},
{"sfk","jda","jjjf",1},
{"ash","jaj","sjda",2}
};
char choice;
cin>>choice;
while(choice!='q')
//while() 这个不行啊
{
switch(choice)
{
case 'a':
for(int i=0;i<5;i++)
cout<<num1[i].fullname<<endl;
break;
case 'b':
for(int j=0;j<5;j++)
cout<<num1[j].title<<endl;
break;
case 'c':
for(int k=0;k<5;k++)
cout<<num1[k].bopname<<endl;
break;
case 'd':
for(int l=0;l<5;l++)
{
if(num1[l].preference==0)choice='a';
else if(num1[l].preference==1)choice='b';
else if(num1[l].preference==2)choice='c';
}
};
cin>>choice;
};
cout<<"BYB!";
return 0;
}

void showmenu()
{
cout<<"please enter one of the following choices:\n"
"a)display by name b)display by title\n"
"c)display by bopname d)display by prefernce\n"
"q)quit\n";
}
/*void showelem1(bop& elem[j],)
{
for(int i=0;i<5;i++)
cout<<elem.fullname<<endl;*/


D:\新建文件夹\c64.cpp(92) : error C2360: initialization of 'i' is skipped by 'case' label
D:\新建文件夹\c64.cpp(81) : see declaration of 'i'
...全文
178 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zafzap 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wenhong609 的回复:]

case中是不能够定义变量的!
由于case的执行条件的情况不一样,如果不加大括号限制变量的作用域,很可能定义变量的case没有被执行,而导致引用变量的case却使用了没有定义的变量。因此编译器不允许这样定义变量。
[/Quote]
嗯 调试过了 真的可以额
深圳大哥 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wenhong609 的回复:]

case中是不能够定义变量的!
由于case的执行条件的情况不一样,如果不加大括号限制变量的作用域,很可能定义变量的case没有被执行,而导致引用变量的case却使用了没有定义的变量。因此编译器不允许这样定义变量。
[/Quote]


case中是不能够定义变量的!
case中是不能够定义变量的!

这个确实啊,我今天就写了个switch case 的,case里面确实不能定义变量,
wenhong609 2012-03-22
  • 打赏
  • 举报
回复
非要在case中定义的话,也可以将case的执行语句用{}括起来限制下作用域就行了!!
wenhong609 2012-03-22
  • 打赏
  • 举报
回复
case中是不能够定义变量的!
由于case的执行条件的情况不一样,如果不加大括号限制变量的作用域,很可能定义变量的case没有被执行,而导致引用变量的case却使用了没有定义的变量。因此编译器不允许这样定义变量。
Furney 2012-03-22
  • 打赏
  • 举报
回复
将这switch里面的变量i,j,k定义在外面。
pathuang68 2012-03-22
  • 打赏
  • 举报
回复
看了半天,也没看出个所以然。帮顶了。

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧