C语言选择题,为什么答案是A,求过程
5个回答
2015-05-26
展开全部
break只是退出switch(y),由于switch(x)中case 1后面没break,会执行case 2,所以是A
展开全部
第一个switch(x)
x=1 所以走case 1 进入第二个switch
y=0 所以 走case 0: 执行a++后遇到break, 跳出本层switch语句, 这个时候a=1
因为switch的case 1后面没有break, 所以语句继续往下执行到case 2 那一行, 执行了a++和b++,这时候 a=2 b=1 遇到break 跳出本层switch , 到了printf语句, 所以选A
x=1 所以走case 1 进入第二个switch
y=0 所以 走case 0: 执行a++后遇到break, 跳出本层switch语句, 这个时候a=1
因为switch的case 1后面没有break, 所以语句继续往下执行到case 2 那一行, 执行了a++和b++,这时候 a=2 b=1 遇到break 跳出本层switch , 到了printf语句, 所以选A
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的switch(x)中case 1:语句在执行后继续执行了case 2:语句
case 1: switch(y){} 语句等价于 a++;没有break
switch(x)
{
case 1:
switch(y){} ; break ;//注意这个break;
}
case 1: switch(y){} 语句等价于 a++;没有break
switch(x)
{
case 1:
switch(y){} ; break ;//注意这个break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
逻辑是这样的,第一个switch选择的是x,当然执行case1了,然后case1后面是嵌套的衣蛾switch选择y是0,那么a++后等于1了,嵌套的switch被break终结了,但是外层的switch配套的case1并没有break,所以case2被执行,之后a++,b++,结果就是A了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主要原因是一个break只能终止一个循环或者一个switch,所以里面的switch使用后因为外部的switch没有得到终止操作,所以向下执行第二个代码也就是外部的case 2 从而得到A答案
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询