关于输出全部case块的问题

来源:4-6 Java条件语句之 switch

慕运维3449123

2019-08-05 14:35

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

https://img4.mukewang.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回答

  • 慕桂英0595451
    2019-08-05 15:39:35
    已采纳

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

    慕运维344...

    刚想到一点,你看我说的对不对:我这里没有全部输出,是因为 case "日" 后面没有case了。 所谓的全部输出,是输出匹配到相同case的以后的数据,未匹配之前的数据不会输出, 是这样的理解嘛?

    2019-08-06 19:36:46

    共 4 条回复 >

  • CarrolChen
    2019-09-02 19:00:52

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

  • 慕运维1495087
    2019-08-07 13:55:44

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

    慕运维344...

    谢谢解答!

    2019-08-07 14:07:23

    共 1 条回复 >

  • 卡布诺依
    2019-08-06 14:23:18

    你没有加 break 语句。
     

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

     break;


Java入门第一季(IDEA工具)升级版

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

1165554 学习 · 17587 问题

查看课程

相似问题