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

关于输出全部case块的问题

例子中有这么一种情况:没有遇见break时输出所有case块内容,但是以习题来说的话为什么不可以全部输出呢?

https://img1.sycdn.imooc.com//5d47cd7b00011cf503810410.jpg

public class HelloWorld {  
  public static void main(String[] args) {	
  	char today='日';		
  	switch(today)	
  	{	
  	case '一':		
  	case '三':	
  	case '五':		        
  	System.out.println("早餐吃包子");		  
  	case '二':		    
  	case '四':		    
  	case '六':		        
  	System.out.println("早餐吃油条");		    
  	case '日':		        
  	System.out.println("吃主席套餐");		        		
  	} 	
  	}
  	}


正在回答

4 回答

但如果改成char today='一';  就会全部输出了

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

慕运维3449123 提问者

这是为什么?
2019-08-06 回复 有任何疑惑可以回复我~
#2

慕运维3449123 提问者 回复 卡布诺依

我想知道的是怎么全部输出 = =!
2019-08-06 回复 有任何疑惑可以回复我~
#3

慕运维3449123 提问者

刚想到一点,你看我说的对不对:我这里没有全部输出,是因为 case "日" 后面没有case了。 所谓的全部输出,是输出匹配到相同case的以后的数据,未匹配之前的数据不会输出, 是这样的理解嘛?
2019-08-06 回复 有任何疑惑可以回复我~
查看1条回复

因为你输入的是日,已经排在最后面一个,所以前面的输出你是看不到的,假设你输入的是一,后面会全部输出的,记住,switch遇到break后就会立刻停止语句体的执行。

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

例子的情况是执行符合条件方案后如果没有碰到break就会把接下去的方案也执行了直至没有方案    你这个是符合条件的方案已经是最后一个方案了  接下去没方案执行  所以结果也只执行最后一个方案

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

慕运维3449123 提问者

谢谢解答!
2019-08-07 回复 有任何疑惑可以回复我~

你没有加 break 语句。
 

System.out.println("早餐吃包子");

 break;


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

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165455    人
  • 解答问题       17585    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

关于输出全部case块的问题

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