JDK12 开始引入,JDK 14成为了正式版本的功能:JEP 361: Switch Expressions (Standard)。
省略 break
原先:
1 2 3 4 5
| switch (n) { case 1: break; }
|
简化后:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| switch (n) { case 1 -> { } }
这种写法不用担心case穿透的问题,可读性也更好了
如果只有一行代码,可以省略大括号:
```java switch (n) { case 1 -> System.out.println("Hello"); }
|
switch表达式
switch可以作为一个表达式使用了
1 2 3 4 5 6 7 8 9 10 11 12 13
| char score = 'C';
String s = switch (score) { case 'A' -> "优秀"; case 'B' -> "良好"; case 'C' -> "中"; case 'D' -> "及格"; case 'F' -> "不及格"; default -> "成绩输入错误"; }; System.out.println(s);
|
多值匹配
case后面可以接多个值,用逗号分隔,进行多值匹配
当你把使用 箭头括号 将 冒号和break 省略之后,此时switch就不会贯穿了,但在某些情况下,程序本来就希望贯穿。这时就可以使用多值匹配
1 2 3 4 5 6 7 8 9 10
| char score = 'B';
String s = switch (score) { case 'A', 'B' -> "上等"; case 'C' -> "中等"; case 'D', 'E' -> "下等"; default -> "成绩数据输入非法!"; }; System.out.println(s);
|