首先先介绍switch语句的语法结构和注意的事项,然后再按照介绍default的省略和位置、case穿透以及针对jdk12以后的新特性。
- switch的语法结构及注意事项
- default的省略和位置
- case穿透
- switch新特性(jdk12以后)
1.以一个例子对switch的语法结构展开介绍:
package com.itheima.demo1;
public class SwitchDemo {
public static void main(String[] args) {
String lunch="热干面";
switch(lunch){
case "牛肉面":
System.out.println("牛肉面");
break;
case "兰州拉面":
System.out.println("兰州拉面");
break;
case "热干面":
System.out.println("热干面");
break;
default:
System.out.println("方便面");
break;
}
}
}
注意:switch后面是可以得到具体值的表达式,这个值是一个被被比较的量,而case后面的是字面量不能是变量。
2.default可以放在前面也可以放在后面也可以被省略。
3. case穿透
即没有break的时候执行完该case语句,会继续执行下一条case语句。
4.jdk12以后的新特性
package com.itheima.demo1;
import java.util.Scanner;
public class SwitchDemo2 {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
switch (num){
case 1-> System.out.println(1);
case 2-> System.out.println(2);
case 3-> System.out.println(3);
default -> System.out.println(4);
}
}
}
关于case穿透和新特性:
package test;
import java.util.Scanner;
public class test3 {
//需求:如果输入的数字是1-5,打印工作日,如果是6,7则打印休息日,反之则打印不存在
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
switch (num){
case 1,2,3,4,5-> System.out.println("工作日");
case 6,7-> System.out.println("休息日");
default -> System.out.println("一个星期内不存在这一天");
}
}
}