若有定义 int a=1,b=0;,则执行一下语句后,输出为:

switch(a){case1:switch(b){case0:printf("**0**");break;<br/>case1:printf("**1**");brea... switch(a)
{
case 1 :
switch(b)
{case 0:printf("**0**");break;<br/>case 1:printf("**1**");break;<br/>}
case 2 :printf("**2**");break;
}
这个题的结果是**0****2***还是**0**啊?为什么啊?
展开
 我来答
qq466108350
2013-04-14 · 超过16用户采纳过TA的回答
知道答主
回答量:35
采纳率:100%
帮助的人:32.4万
展开全部

输出结果是:**0****2**

switch语句最好给每个case语句完后加上break以跳出switch循环,但不加也没错,程序会接着执行下一个case中的语句而不会再进行判断条件是否满足,直到遇到break才跳出循环,你的代码中:

switch(a)
{
case 1 :
switch(b)
{
case 0:
printf("**0**");break;
case 1:printf("**1**");break;
}
//这里没有case 1的break;会接着执行case 2中的语句而不会进行case 2判断
case 2 :
printf("**2**");break;
}
匿名用户
2013-04-14
展开全部
你把case看作一条通道的入口,而break是通道的出口。
a满足case 1, 则程序进入case通道,而在case 1运行完后程序并没有遇到出口break,所以程序继续无障碍的进入case 2, 最后在case 2中遇到break而终止。
所以会输出**0****2**
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
任好慕jx
2013-04-13 · TA获得超过1516个赞
知道小有建树答主
回答量:1027
采纳率:66%
帮助的人:472万
展开全部
结果是**0****2***

1,switch(a)
2,{
3,case 1 :
4,switch(b)
5,{case 0:printf("**0**");break;<br/>case 1:printf("**1**");break;<br/>}
6,case 2 :printf("**2**");break;
7,}

因为a=1,执行第3行;
b=0,执行第5行。输出**0**,之后break跳出,case1中的switch结束。
接下来执行case2。输出**2**。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-14
展开全部
这是一个嵌套循环switch(a)是外循环 switch(b)是内循环由鱼a=1固case 1符合条件进入内循环由于b=0 固case 0符合条件打印输出**0**并且退出内循环回到外循环接着执行case 2的这条语句打印输出**2**
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-14
展开全部
是**0****2**,因为对于a的case 1以后没有break。因此他会接着执行case2。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式