C语言选择结构

intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c==;break;case4:c+=2;break}prin... int c=0,k; for(k=1;k<3;k++) switch(k) {default:c+=k;case2:c==;break;case4:c+=2;break}
printf("%d\n",c); 最终输出c为3,答案解释说K=4时才结束循环,为什么?
展开
 我来答
百度网友7c2537301b
2013-02-14
知道答主
回答量:17
采纳率:0%
帮助的人:17.6万
展开全部

只是想问为什么答案说k=4结束循环么?

可以负责任的告诉你,答案解释错了。不信的话可以自己设个断点调试一下的。

下面是我调试的图,右边变量显示k=3,退出了循环。

至于c的答案的问题,由于不知道你case 2那里是什么,我随便弄了一个。

以上。

追问
sorry,case2那里是c++,打错了。现在我明白了~
追答
ok~..给我最佳吧~~谢谢。~~
匿名用户
2013-02-14
展开全部
首先,k和c是两个不同的变量
一开始k=1,就跑到default:c+=k,注意到default后面没有break;因此会继续执行case2:c++,第一个循环后,c=2;
第二个循环,k=2,跑到case2:c++,此时c=3;
第三个循环,k=3,不符合k<3。循环结束。
此时c=3,所以输出3.

答案是c=3,k=3,你的答案解答是错误的,请参考我的解答。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
superamoyman
2013-02-14
知道答主
回答量:22
采纳率:0%
帮助的人:3.6万
展开全部
很明显,根据你的代码,“答案解释说K=4时才结束循环”是错误的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
校园犭王少
2013-02-14
知道答主
回答量:17
采纳率:0%
帮助的人:4万
展开全部
你会多少?教教我啊!
追问
你是什么意思?~我理解到哪一步?为什么不是第二次循环后就结束?
追答
.......你会这个技术吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ditangxueyi
2013-02-14
知道答主
回答量:9
采纳率:0%
帮助的人:6.2万
展开全部
"case2:c=="是不是输错了?
追问
sorry,是c++
追答
当k=1时,执行default语句后c=1,又因为default语句后面没有加break;所以还要执行case2语句后c=2,当k=2时执行case2一条语句后c=3并结束循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式