为什么条件运算符不适用于java switch case?

时间:2015-05-14 05:48:54

标签: java operators

我执行以下代码

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?

1 个答案:

答案 0 :(得分:5)

根本不是switch / case语句如何工作 - 用Java或各种类似语言(C,C ++,C#)。这不是他们的观点。

开关/案例陈述不是条件序列 - 它们是一系列常数值(带有相关代码),还有一个被评估的表达式,然后执行与该表达式的结果相关联的代码。

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