在标准的 Java switch
语句中,每个 case
标签后的值必须是一个具体的、固定的值,不能是一个范围。但是又需要多重判断,在不用if else的情况下,如何解决.
从 Java 14 开始,引入了一个新的语言特性——switch
表达式(switch
patterns),其中包括了 case
范围模式(range pattern)。在支持该特性的版本中,可以这样编写:
Java
1int head = ...; // 假设 head 是一个整数变量
2switch (head) {
3 case int n -> n >= 0 && n <= 10: // 注意:Java 14及以上版本才支持此写法
4 System.out.println("Value is between 0 and 10");
5 break;
6}
请注意,使用 case int n -> n >= 0 && n <= 10:
这种写法要求你的项目使用 Java 14 及以上版本,并且在编译器选项中启用了相应的语言特性。如果你的项目环境不满足这些条件,仍然需要使用传统的 if
语句来实现范围判断。