2013-02-23 33 views
5

में स्विच स्टेटमेंट्स में जावा प्रोग्राम का हिस्सा मैं उपयोगकर्ता को अपने घर देश से पूछता हूं। एक और हिस्सा स्विच स्टेटमेंट का उपयोग करता है, और मुझे एक त्रुटि मिलती है। त्रुटि है: The operator || is undefined for the argument type(s) java.lang.String, java.lang.String। यहाँ विधि जहां समस्या होती है:"||" का उपयोग करना जावा

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

कैसे एक उपयोग & & और || जावा स्विच स्टेटमेंट में?

+1

रास्ता "Hallo" भी जर्मन में प्रयोग किया जाता है के द्वारा। "गुटेन टैग" अधिक औपचारिक है। यकीन नहीं है कि आप इसे चाहते हैं। – rekire

+0

क्षमा करें जावा में यह सुविधा नहीं थी (मेरे पुराने मूल में यह था। इसमें 'केस 2 से 13' श्रेणियों की संभावना भी थी)। लेकिन जावा में ऐसी विशेषताएं मौजूद नहीं हैं। '||' गिरावट से नकल किया जा सकता है। (नीचे उत्तर देखें)। – MrSmith42

उत्तर

14

मुझे नहीं लगता कि आप स्विच कथन में इस तरह की सशर्त उपयोग कर सकते हैं। यह इस बजाय लिखने के लिए सरल और अधिक स्पष्ट हो जाएगा:

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

यह एक fall-through case है - अगर आपकी स्ट्रिंग या तो इंग्लैंड या ब्रिटेन से मेल खाता है, यह Hallo वापस आ जाएगी।

+0

एआईएफके स्विच केवल int जैसे स्थिरांक की अनुमति देता है। क्या मैं कुछ भुल गया? – rekire

+2

जावा 7 स्ट्रिंग्स पर स्विचिंग की अनुमति देता है। – Makoto

+0

धन्यवाद, मकोटो! –

7

गिरावट के माध्यम से उपयोग की स्थिति:

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