switch语句格式:
switch(将要匹配的值){
case 值1;
语句体1;
break;
case 值2;
语句体2;
break;
case 值3;
语句体3;
break;
...
default:
语句体n+1;
break;
}
执行流程:
1、拿着{}中将要匹配的值,跟case给出的选项,逐个进行匹配
匹配城功,执行语句体,再由break结束整个switch语句
2、如果给出的所有case,都匹配失败了,将会执行最后的default,由break结束掉整个的switch语句
注意事项:
1、case后面的值不允许重复
2、case后面的值,只能是字面量,不能是变量
3、swinch()中可以接收的类型
(1)基本数据类型:byte short int
(2)引用数据类型:jdk5版本可以是枚举,jdk7版本可以是字符串
4、case穿透现象
比如咱们建立一个需求:使用封装方法键盘录入一个数值,1~5:输出工作日 6~7:输出休息日
jdk14版本开始,case后面允许编写多个数据,多个数据中间用逗号分隔
public static void xq() { Scanner sc=new Scanner(System.in); System.out.println("请输入"); int week=sc.nextInt(); switch (week) { case 1,2,3,4,5: System.out.println("工作日"); break; case 6,7: System.out.println("休息日"); break; default: System.out.println("您的输入有误"); break; }
下面来个需求:使用封装方法键盘录入一个整数,根据录入的数值,程序打印出对应的星期
public static void xq() { Scanner sc=new Scanner(System.in); System.out.println("请输入"); int week=sc.nextInt(); switch (week) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期天"); break; default: System.out.println("您输入有误"); break; } }