C++循环语句 break问题

每次switch选择有break的就连while的循环一起结束了但我只是想结束switch然后重新while请问该怎么做continue似乎也不行continue应该怎么... 每次switch选择有break的 就连while的循环一起结束了 但我只是想结束switch 然后重新while 请问该怎么做
continue似乎也不行 continue应该怎么用来着
这样改过之后 怎么更坏了

好像最后面的cin>>z根本没有运行

到这里 光标不动了 什么都无法输入 就好像死机一样
展开
 我来答
cppqingyuan
2014-03-05 · 超过44用户采纳过TA的回答
知道答主
回答量:154
采纳率:0%
帮助的人:107万
展开全部
continue是跳过当次循环,执行下一次循环
替换方案
1、break调多层循环好像和编译器有关,没有找到解决方案,你可以将switch完后要执行的语句放到while循环开头,加一个if判断第一次进循环不执行,最后一次进循环弹出while,while循环多加一次,把switch里的break换成continue
2、switch情况少的时候可以用if替换
尽量不要在多层循环里用break,因为编译器的关系,可能会有不确定因素
对于break有两种定义一种是跳出当前语句块,即{},这种情况switch中的break不会跳出while;另一种定义是break跳出当前循环,switch不是循环,break会跳出所在的while循环。
cpucash
2014-03-05 · TA获得超过1584个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:970万
展开全部
break不会退出两层的,switch中的break是不会退出while的,这个是没有问题的
cin这个语句不该出现在while的判断中吧,要不然需要输入两次z在可以进入循环

你直接while(1)死循环,设计一个退出程序的case分支,也就是exit函数

容错重新输入需要一个循环来解决,而不要在switch中解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cooke1234
2014-03-05 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3607万
展开全部
int z = 1;

while(z)

{
cout << "你想做什么......." << endl;

cin >> z;
switch(z)
{......}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2014-03-05 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6649万
展开全部
break不可能跳出while循环,只跳出switch选择句。把最后一句前}前的cin>>z删除就应该能奏效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e43033c
2014-03-05 · TA获得超过1130个赞
知道小有建树答主
回答量:933
采纳率:100%
帮助的人:937万
展开全部
你的不是连while的循环一起结束,而是多了一个cin>>z;
在你的倒数第二那个 cin >> z; 是不要的
程序会停住,等待你再输入一个z。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飘菲的白色
2014-03-05 · TA获得超过617个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:337万
展开全部

你的switch没有加大括号{}

switch(z) 
{
case 1:
//your code
    break;
case 2:
//your code
    break;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式