3-7-2选择题

3-7-2选择题

http://img1.sycdn.imooc.com//climg/5b84bccd000141eb03280396.jpg我计算了一下,x&y应该等于6的,为什么在switch中没有取case 6,而取的是default的值?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

因为你在case中并没有添加break呀。都加上就只走case6,而不走其它项了。祝:学习愉快

  • 曼曼喜欢你 提问者 #1
    您好,先谢谢您的回答。 我发现一个很有趣,但是还是没有想明白的问题。 1) 如果我注释掉//case 6:k=x/y; 那么switch循环是没有任何一个条件符合的,k=5。这个我可以理解。 2) 如果我改为case 6:k=x/y;break; 那么和您说的一样,是只执行case 6的,k=0。这个我也可以理解。 3) 如果我不在case 6后面写break;同时case 6又存在的情况下,会挨个往下执行并且取最后一个条件的值。这个我就没想明白了。 等于说如果不break 同时加上有任何一个case条件满足的情况下,该case后的每个条件都会执行,直到遇到break; 我觉得有点神奇...
    2018-08-28 21:39:19
  • 好帮手慕雪 回复 提问者 曼曼喜欢你 #2
    对,对于第三条,就是这样的情况。因为switch case就是寻找符合条件的case,以此做为代码执行的入口,遇到break相当于是出口,没有出口,就会一直执行下去
    2018-08-29 14:57:11
  • 曼曼喜欢你 提问者 回复 好帮手慕雪 #3
    原来如此,感谢!
    2018-08-29 16:59:14
慕尼黑0532343 2018-08-28 21:50:09

没有break语句,会顺序执行下去;

提问者 曼曼喜欢你 2018-08-28 11:11:13

抱歉,我打字打错了。我重新打一下问题。


我计算了一下,x%y是等于6的。那么为什么在题中,switch没有去case 6的值,而是取了default的值呢?

  • 没有default语句呀 他会一直执行下去直到遇到break
    2018-08-29 14:30:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师