为了账号安全,请及时绑定邮箱和手机立即绑定

case后面的值的意义何在?

case 值1 后若无break会跟着执行case2后的代码块,那么case后的值有何意义?不是需要匹配才执行吗?

正在回答

2 回答

在这节课的第三点里说后面没有break,就会跟着执行后面的代码

这个应该像之前的(与、或、非的课程)里面提到的,程序“短路”现象一样。课程源文:https://www.imooc.com/code/1301

就像

boolean A=true;
boolean B=true;
boolean C=False;

System.out.println( A || B && C ); //结果为True

程序执行到前面,若已经满足条件,则后面的判断直接跳过


所以,这节课第三点中举的例子,虽然名次定为1,可因为中间没有break打断

所以程序检测到符合条件的(case1)后,后面不再进行判断

直接把后面的代码全部输出了


1 回复 有任何疑惑可以回复我~

和switch()括号中的值进行匹配啊,case后面的值类似于选择题中的ABCD四个选项,哪个和switch()括号中的一样,就执行相应的后面的代码。

0 回复 有任何疑惑可以回复我~
#1

要当程序员 提问者

所有的case后面都要跟break这个我没懂,在这节课的第三点里说后面没有break,就会跟着执行后面的代码,不是与switch匹配才执行吗?怎么没有break也会跟着执行?例如这节课第三点中举的例子,名次定为1,可后面输出了四样奖品?与1匹配的不是只有case1吗?为何还会因为没有break去执行不匹配的2、3、4?
2018-03-01 回复 有任何疑惑可以回复我~
#2

SamaPrince 回复 要当程序员 提问者

default是在前面的case都没有匹配情况下才执行。其实switch类似于一个循环,你要是不用break的话是跳不出来的
2018-03-01 回复 有任何疑惑可以回复我~
#3

要当程序员 提问者 回复 SamaPrince

这样说我能理解,但是跳不出来应该是个死循环,也不至于去执行后面的代码,因为是要匹配才执行的呀。
2018-03-01 回复 有任何疑惑可以回复我~
#4

慕码人9242148 回复 要当程序员 提问者

不会是死循环,没有break的话,比喻和你的一匹配,但后面的代码匹配都会打印出来
2018-04-07 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

case后面的值的意义何在?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信