2015-05-14 57 views
1

我做下面的代碼爲什麼條件操作符不能在java開關的情況下工作?

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中工作?

回答

5

這根本不是switch/case語句的工作原理 - 使用Java或各種類似的語言(C,C++,C#)。這不是他們的要點。

開關/ case語句不是對條件序列 - 他們恆定值(具有相關聯的代碼)的序列,利用該評價單個表達式沿,然後用的結果相關聯的所述代碼該表達式被執行。

如果你想條件序列,只需使用if/else。 Java中沒有其他方法。有這樣的條件匹配的語言,但Java不是其中之一。 (請注意,在這些語言中,如果多個條件匹配,您需要仔細規定 - 如果您的示例中可能出現這種情況(例如,如果cnt爲0)...

相關問題