一、概念:

switch case 语句是一个条件选择语句,

找到相同的case值做为入口,执行后面的程序(直到遇到break结束,或者没有代码也结束);
若所有的case都不满足,则找default入口(直到遇到break结束,或者没有代码也结束);
若也未找到default入口则退出整个switch语句。

(所以default只是一个备用的入口,有没有都无所谓。)

二、switch使用例子1

一段代码如下:

	int w=3;
	
	switch (w){
	    
	    case 1:
	        System.out.println("1");
	    case 2:
	        System.out.println("2");
	        break;
	    case 3:
	        System.out.println("3");
	    case 4:
	        System.out.println("4");
	        break;
	    default:
	        System.out.println("default");
	        
	}
	

如果switch上面的条件,能在case中找到对应的,则,直接跳到 “case 3:” 这一行,
然后顺序往下执行(不管case是否匹配),直到遇到“break”结束执行,或者没有代码也结束。

所以上面的输出是:

3
4

三、switch使用例子2

	int w=5;
	
	switch (w){
	    
	    case 1:
	        System.out.println("1");
	    case 2:
	        System.out.println("2");
	        break;
	    case 3:
	        System.out.println("3");
	    case 4:
	        System.out.println("4");
	        break;
	    default:
	        System.out.println("default");
	        
	}
	

如果switch上面的条件,不能在case中找到对应的,则,直接跳到 “default:” 这一行,
然后顺序往下执行(不管case是否匹配),直到遇到“break”结束执行,或者没有代码也结束。

所以上面的输出是:

default

四、switch使用例子3

	int w=5;
	
	switch (w){
	    default:
	        System.out.println("default");
	    case 1:
	        System.out.println("1");
	    case 2:
	        System.out.println("2");
	        break;
	    case 3:
	        System.out.println("3");
	    case 4:
	        System.out.println("4");
	        break;	   
	}
	

如果switch上面的条件,不能在case中找到对应的,则,直接跳到 “default:” 这一行,
然后顺序往下执行(不管case是否匹配),直到遇到“break”结束执行,或者没有代码也结束。

所以上面的输出是:

default
1
2

五、总结

  1. 如果switch上面的条件 能在case中找到,则直接跳到这个case这行,然后往下执行,直到遇到break结束,或者下面没有代码也结束。

  2. 如果switch上面的条件 不能在case中找到,则直接跳到这个default这行,然后往下执行,直到遇到break结束,或者下面没有代码也结束。

  3. 如果switch上面的条件 不能在case中找到,也没有default这一行,就直接跳出switch条件选择语句。

六、必须注意点:

  1. switch后面括号里面的数据类型,必须与case后面的数据类型一致!!!

  2. switch后面括号里面的数据类型,
    只能是:byte、short、int、char、 Byte、Short、Integer、Character、String、enum
    不能是:long、 float、double、boolean等等…

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐