2013-02-23 82 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, ";