2013-02-23 9 views
5

Bir Java programının bir parçası olarak kullanıcıya kendi ülkelerini soruyorum. Başka bir bölüm bir anahtar deyimi kullanır ve bir hata alıyorum. Hata: The operator || is undefined for the argument type(s) java.lang.String, java.lang.String. İşte sorun oluşur bir yöntem vardır:"||" Kullanımı java'da anahtar deyimlerinde

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

Nasıl bir kullanım & & ve || Java anahtar ifadesinde?

+1

. "Guten Tag" çok daha resmi. İstersen emin değilim. – rekire

+0

Üzgünüm java bu özelliğe sahip değildi (Eski BASIC'im vardı. Ayrıca, '2'den 13'e kadar olan durumlar için bir olasılık da vardı). Ancak bu özellikler java'da mevcut değildir. '||' düşme yoluyla öykünebilir. (Aşağıdaki Cevaplara bakınız). – MrSmith42

cevap

14

Anahtar ifadelerinde bunun gibi koşulların kullanılabileceğini sanmıyorum. Bunun yerine bu yazmak için daha basit ve daha anlaşılır olurdu:

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

Bu

bir fall-through case hazır - dize İngiltere veya İngiltere'yi ya eşleşirse, bu Hallo dönecektir.

+0

AIFK anahtarı yalnızca int gibi sabitlere izin verir. Bir şey mi kaçırdım? – rekire

+2

Java 7, Dizeleri açmaya izin verir. – Makoto

+0

Teşekkür ederim Makoto! –

7

sonbahar-through Kullanım örneği: "Selam" da Almanca olarak kullanılır arada

case "England": 
case "UK": 
    return "Hallo, "; 
İlgili konular