目录
根据版本,在java14开始, switch语句有了一个很大的调整, 这就让swicth语句有了更多的操作和选择,在代码上,更加的简便灵活.
- Java中switch的三种用法详解:
-
- switch 标准方式
- switch - > 用法
- switch yield 用法
1. switch的标准方式:
注意: 其中, flag的类型必须为char, int, short, byte, String, enum(枚举), 其余类型均不可取.
switch (flag){
case 0 : 语句一; break;
case 1: 语句二; break;
default: 语句n; break;
}
2. switch - > 的用法:
->的用法其实只是相当于不用输入break用以跳出判断, 保证其只有一条分支可走.
switch (flag){
case 0 -> 语句一;
case 1 -> 语句二;
default -> 语句n;
}
3. switch yield的用法
switch yield 的用法可以理解为把switch()当做一个方法去使用, 将方法的返回语句return改为yield返回, 但需要注意的是, 使用switch yield时, 必须有一个对应的变量在外面接收返回值.
switch作为了一条语句, 所以末尾要加冒号, 其他用法相同, 下次如果条件很多的话, 就不用使用 if else, 可以考虑使用switch中的yield返回参数方式了.
以下是一个判断当天所在年月当月天数的示例代码, 使用的为switch yield用法:
实例代码:
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1; //0-11
int days = switch (month) {
case 1, 3, 5, 7, 8, 10, 12 -> {
int s = 5;
yield 31;
}
case 4, 6, 9, 11 -> 30;
case 2 -> year % 400 == 0 || year % 4 == 0 && year % 100 != 0 ? 29 :
28;default -> 31;
};
System.out.printf("%d年%d月有%d天%n", year, month, days);
}