case的问题

case的问题

https://class.imooc.com/course/qadetail/117539

就像这位同学的问题一样,当num为"1"时,不符合2,3条件,应该数次JavaScript 退出

正在回答

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

1回答

要理解这个问题,首先需要理解switch语句的语法规则,如下:

一个switch语句首先会计算其num,然后它将从第一个case子句开始直到寻找到一个其表达式值与所输入的num的值所相等的子句(使用严格运算符,===)并将控制权转给该子句,执行相关语句,如果没有case子句相匹配,程序则会寻找可选的default子句,如果找到了,将控制权交给它,执行相关语句,若没有default 子句,程序将继续执行直到switch结束,可选的break语句确保程序立即从相关的case子句中跳出switch,若break被省略,程序会继续执行switch语句中的下一条语句

http://img1.sycdn.imooc.com//climg/5d5f5b800001088006870517.jpg

由于习题给出的代码中是省略掉break的,所以程序匹配到第一个后,不能跳出语句,且按照switch语句的规则,会继续执行switch的下一条语句,因此会持续弹出javascript、java、c++、退出

祝学习愉快!

  • 幽辰 提问者 #1
    对啊,在匹配完第一个之后,输出javascript,然后到了case "2"这条语句,再判断,因为1不是2,所以不会输出java啊,我是这样理解的
    2019-08-23 14:06:24
  • 樱桃小胖子 回复 提问者 幽辰 #2
    switch语句省略掉break后,即使是后面的不匹配,也依然会继续执行的哦,只有在加了break后,1匹配后,输出javascript,跳出switch语句,不再继续执行,因为省略了break,没有跳出switch语句的操作,所以1匹配后,输出javascript,switch语句会依然向下执行,直至语句执行完毕,这个时候,不管1与后面的2、3……是否匹配,都会继续执行的
    2019-08-23 14:15:28
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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