2013-02-23 103 views
5

我正在向用戶詢問他們的祖國的一個Java程序的一部分。另一部分使用switch語句,並且出現錯誤。錯誤是:The operator || is undefined for the argument type(s) java.lang.String, java.lang.String。這裏就是發生問題的方法:使用「||」在java中的switch語句中

public static String getCountryMessage(String countryName) { 
    switch (countryName) { 
    case "USA": 
     return "Hello, "; 
    case "England" || "UK": 
     return "Hallo, "; 
    case "Spain": 
     return "Hola, "; 
    case "France": 
     return "Bonjour, "; 
    case "Germany": 
     return "Guten tag, "; 
    default: 
     return "Hello, "; 
    } 
} 

怎樣一種用途& &和||在Java switch語句中?

+1

通過「喂」也是在德國使用的方式。 「Guten Tag」更加正式。不知道你是否想要。 – rekire 2013-02-23 21:13:24

+0

對不起,java沒有這個功能(我的老BASIC有它,它也有可能用於範圍2到13')。但是這些功能在java中不存在。 '||'可以通過延期模擬。 (見下面的答案)。 – MrSmith42 2013-02-23 21:17:15

回答

14

我不認爲你可以在switch語句中使用這樣的條件。它會更簡單,更直接的,而不是寫:

case "England": 
case "UK": 
    return "Hallo"; 

這是一個fall-through case - 如果你的字符串匹配或者英格蘭或英國,它將返回Hallo

+0

AIFK開關只允許像int這樣的常量。我錯過了什麼? – rekire 2013-02-23 21:09:17

+2

Java 7允許在字符串上進行切換。 – Makoto 2013-02-23 21:09:30

+0

謝謝真誠! – 2013-02-23 21:50:47

7

使用落空的情況下:

case "England": 
case "UK": 
    return "Hallo, ";