Java-使用高级/新类型的多个 switch 语句

问题描述 投票:0回答:1

在此处输入图像描述我正在尝试使用这种格式作为 switch 语句,但在 eclipse 中出现错误,但不知何故它不会在 intellij 中抛出错误。需要改变什么?

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int switchValue = 3;
    
    switch(switchValue) {
    case 1: System.out.println("Value was 1");
    case 2: System.out.println("Value was 2");
    case 3,4,5 ->
    {
        System.out.println("Value was 3");
    }
    
    default -> System.out.println("Was not 1,2,3,4 or 5");
    }
}

线程“main”java.lang.Error中出现异常:未解决的编译问题: 开关内不允许混合不同类型的 case 语句“->”和“:”

at keywords.Switchhh.main(Switchhh.java:12)
java switch-statement
1个回答
0
投票

请注意,尽管根据

Eclipse
,您不能在同一个 switch 块中混合 case 语句类型,但您可以混合两种 switch 块类型,只要它们在代码中完全分开即可。 以下内容在 Eclipse 中有效(尽管我想不出这样做的理由)。


switch (switchValue) {
    case 1:
        System.out.println("Value was 1");
        break;
    case 2:
        System.out.println("Value was 2");
        break;
    default : {
        switch (switchValue) {
            case 1, 2, 3 -> System.out.println("Value was 3");
            default -> System.out.println("Was not 1,2,3,4 or 5");
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.