A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是因为什么?


打印 1 2

那么问题来了?
java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是因为什么?
要是打印 1 3 还可以理解,打印 1 2 就想不通了。
难道是sun那帮骚年留下的bug?


5 个回复

倒序浏览
当然不是,这是为了,让多个case可以共用同一语句块。比如一年中12个月,31天的有7个月,如果处理方法相同,没必要写7遍。只要在第7个case下写这些语句就行了。
回复 使用道具 举报
pvbj0314 发表于 2015-5-20 21:02
当然不是,这是为了,让多个case可以共用同一语句块。比如一年中12个月,31天的有7个月,如果处理方法相同 ...

答非所问哦亲
回复 使用道具 举报
switch是选择结构,但并非是单选结构。可以想象一下,如果switch在每一次执行完对应case以后自动帮你break结束,那么除去default,他只会执行单选。而break是可选的这一设计,是为了让用户来决定自己写的switch是单选、多选还是混合选择。
回复 使用道具 举报

“那么问题来了?
java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是因为什么?
要是打印 1 3 还可以理解,打印 1 2 就想不通了。
难道是sun那帮骚年留下的bug?”
你问的不是这些吗?答案就是“不是”“sun那帮骚年留下的bug”。我也说明这样设计的理由,"让多个case共用同一语句块",后面又例举一个需要多个case共用同一语句块的情况。
这怎么会是答非所问呢?
回复 使用道具 举报
pvbj0314 发表于 2015-5-21 15:10
“那么问题来了?
java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是因为什么?
要 ...

这仅仅是你以为的设计原因。:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马