为什么条件运算符在 java switch case 中不起作用?

Why conditional operator not work in java switch case?

我执行以下代码

int cnt=1;
switch(cnt){
case (cnt<=10): System.out.println("Less than 10");
                break;
case (cnt<=20): System.out.println("Less than 20");
                break;
case (cnt<=30): System.out.println("Less than 30");
                break;
}

有一些关于这个问题的问题。但是我没有得到正确的答案,或者答案不能满足我的需求。我得到这个问题的答案是使用多个 if else 语句。但我想知道为什么运算符在 java switch case 中不起作用?

这根本不是 switch/case 语句的工作方式 - 在 Java 或各种类似的语言(C、C++、C#)中。这不是他们的重点。

Switch/case 语句不是一系列条件 - 它们是一系列 常量值 (带有相关代码),以及一个表达式求值,然后执行与该表达式的结果关联的代码。

如果您想要一系列条件,只需使用if/else。在 Java 中没有任何其他方式。有 种语言具有这样的条件匹配,但 Java 不是其中之一。 (请注意,在此类语言中,如果匹配多个条件可能会发生什么情况,您需要谨慎的规则 - 正如在您的示例中可能发生的那样,例如,如果 cnt 为 0...)