2013-02-23 12 views
5

Część programu Java, który robię, prosi użytkownika o jego kraj pochodzenia. Inna część używa instrukcji switch i pojawia się błąd. Błąd: The operator || is undefined for the argument type(s) java.lang.String, java.lang.String. Oto metoda, w której pojawia się problem:Korzystanie z "||" w instrukcjach przełączania w java

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, "; 
    } 
} 

Jak jeden użycie & & i || w instrukcji przełączania Java?

+1

Przy okazji "Hallo" jest także używane w języku niemieckim. "Guten Tag" jest dużo bardziej formalny. Nie jestem pewien, czy tego chcesz. – rekire

+0

Niestety java nie ma tej funkcji (Mój stary BASIC ją miał, miał również możliwość zakresów 'case 2 To 13'). Ale takie funkcje nie istnieją w Javie. '||' może być emulowane przez upadek. (patrz odpowiedzi poniżej). – MrSmith42

Odpowiedz

14

Nie sądzę, że można używać warunków takich jak w instrukcjach przełączania. To byłoby prostsze i łatwiejsze do napisania tego zamiast:

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

To fall-through case - jeśli string pasuje albo Anglii lub Wielkiej Brytanii, powróci Hallo.

+0

Przełącznik AIFK dopuszcza tylko takie stałe jak int. Przegapiłem coś? – rekire

+2

Java 7 umożliwia włączanie Ciągów. – Makoto

+0

Dziękuję, Makoto! –

7

Użyj przypadek upadku-through:

case "England": 
case "UK": 
    return "Hallo, "; 
Powiązane problemy