概述

switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束

形式

image.png

练习:数字匹配

package cn.tedu.basic;
/**本类用来测试switch结构*/
/**
 * 总结:执行的顺序
 * 1.先拿到表达式的值(a),然后将a的值与case的值依次进行匹配
 * 2.当成功匹配到case的值后,会执行case后的代码\
 * 3.判断此行代码是否有break,如果有,结束执行,如果没有,会继续向后穿透所有case,包括default
 * 4.如果没有匹配到任何的case,只会执行default的代码
 * */
public class TestSwitch {
	//1.创建入口函数main Alt+/补全代码
	public static void main(String[] args) {
		int a = 5;
		/**总结1:a 可以支持5种数据类型:byte short char int
		 * jdk1.5以后支持String*/
		switch(a) {
			//快速向下复制:Ctrl+Alt+向下键
			case 1 : System.out.println(1);break;
			case 2 : System.out.println(2);break;
			/**总结2:break表示结束当前的case,如果不加break,
			 * 会向后穿透所有的case,包括default*/
			case 3 : System.out.println(3);break;
			case 4 : System.out.println(4);break;
			
			/**总结3:default是保底选项,可加可不加
			 * default是如果没有case被匹配到时执行的默认选项
			 * 如果在default之前遇到了break,default才不会执行*/
			default : System.out.println(0);
		}
	}
}

练习: Switch中的String类型

public class TestSwitch {
	public static void main(String[] args) {
		String s = "Monday";
		switch(s) {
			case "Monday" : System.out.println("星期一你好!"); break;
			case "Tuesday" : System.out.println("星期二你好!"); break;
			case "Wedsday" : System.out.println("星期三你好!"); break;
			case "Thursday" : System.out.println("星期四你好!"); break;
			case "Friday" : System.out.println("星期五你好!"); break;
			case "Saturday" : System.out.println("星期六你好!"); break;
			case "Sunday" : System.out.println("星期日你好!"); break;
			
			default:System.out.println("哪天都不是");
		}
	}
}

switch结构的注意事项

1.switch 语句中的变量类型可以是: byte、short、int 、char、String(jdk1.5以后支持)
2.switch 语句可以拥有多个 case 语句
3.每个 case 后面跟一个要比较的值和冒号,且此值的数据类型必须与变量的数据类型一致
4.当变量值与 case 语句值相等时,开始执行此case 语句的内容,执行完会判断此行代码是否有break,如果有,结束执行,如果没有,会继续向后执行穿透所有case,包括default
5.switch 语句可以包含一个 default 分支,该分支一般是写在switch 语句的最后
6.如果在default之前的case有break,则default不会执行

Q.E.D.


努力成就未来