2012-12-08 11 views
18

1 महीने अनुभव मैं किसी भी प्रोग्रामिंग भाषा के साथ लिया है में, मैं मान लिया है कि switchcase की स्थिति एक बूलियन जाँच thingamajig के रूप में कोष्टक में कुछ भी स्वीकार करेंगे, यानी इन:एकाधिक स्थितियों के साथ केस कैसे करें?

|| && < > 

पता है कि मैं क्या क्या मतलब है?

कुछ

तरह
char someChar = 'w'; 
switch (someChar) { 
case ('W' ||'w'): 
    System.out.println ("W or w"); 
} 

दुःख की बात है कि जिस तरह से काम करने के लिए प्रतीत नहीं होता। मैं स्विच मामले में बूलियन जांच नहीं कर सकता।

क्या इसके आसपास कोई रास्ता है?

वैसे, अगर मैं उलझन में लग रहा हूं तो बहुत खेद है। मैं अभी तक इस भाषा में सब कुछ के लिए नाम पता नहीं है: एक्स
कोई जवाब की सराहना की

+0

द्वारा 'java' टैग जिन्हें आप आगे कहा," बूलियन जाँच Thingamajig इन "" संचालक "कहा जाता है और" जावा Tis "स्पष्ट कर दिया है। साथ ही, आपके द्वारा पोस्ट किया गया पूरा कोड स्निपेट अमान्य है (जावा में 'केस' नहीं है), और '{' और '}' गलत स्थानांतरित हैं)। * असली कोड पोस्ट करना बेहतर है * आपको समस्याएं हैं; अधिकांश समय काल्पनिक कोड बनाने का कार्य या तो समस्या को छुपाता है या अतिरिक्त समस्याओं को जोड़ता है जो मूल में नहीं हैं। शायद एक Google खोज मदद करेगी - मैंने 'केस स्टेटमेंट जावा' और [पहला परिणाम] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html) का प्रयास किया था। –

+0

यदि उत्तर सही है, तो इसे – Roger

+0

ऑपरेटर के रूप में स्वीकार करें। समझ गया। और मुझे वास्तव में पता नहीं था कि किसी ने भी टैग को देखा है, इस प्रकार "तिज जावा"। वह स्निपेट यह दिखाने के लिए पर्याप्त था कि मैं क्या पूछना चाहता था? फिक्स बीटीडब्ल्यू के लिए धन्यवाद :) – AfroMan

उत्तर

39

आप इस तरह के मामलों के लिए एक या प्राप्त कर सकते हैं:

switch (someChsr) { 
case 'w': 
case 'W': 
    // some code for 'w' or 'W' 
    break; 
case 'x': // etc 
} 

मामले की तरह एक "गोटो" और कर रहे हैं निष्पादन शुरू करने के लिए एकाधिक गेटोस एक ही पंक्ति साझा कर सकते हैं।

+0

वाह। तेज़ी से उत्तर। एक जादू की तरह काम करता है। धन्यवाद! – AfroMan

+13

एक तेज प्रतिक्रिया हमेशा अच्छी बात नहीं है - बस मेरी प्रेमिका से पूछें:/ – Bohemian

+0

मैंने कभी देखा है सबसे चालाक हैक। +1 होना चाहिए। और एक और लोग यहां [एक और सवाल] पूछते हैं (http://stackoverflow.com/questions/5086322/java-switch-statement-multiple-cases/39123659) और पीपीएल का कहना है कि यह असंभव है। मैंने वहां आपका जवाब उद्धृत किया है। – FaithReaper

3

प्रत्येक मामले में आमतौर पर "ब्रेक" होता है; यह बताने के लिए कि कहां निष्पादन समाप्त होना चाहिए। यदि आप "ब्रेक" छोड़ देते हैं, तो निष्पादन जारी रहेगा। आप एक से अधिक मामलों में उसी तरह संभाला जाना चाहिए समर्थन करने के लिए इस का उपयोग कर सकते हैं:

char someChar = 'w'; 
{ 
case 'W': 
    // no break here 
case 'w': 
    System.out.println ("W or w"); 
    break; 
} 
+0

हाँ मैंने ब्रेक चीज देखी जब यह अगले मामले में जा रहा था। इसका ख्याल रखने का चालाक तरीका। धन्यवाद! – AfroMan

6

आप कर सकते हैं -

switch(c) { 
    case 'W': 
    case 'w': //your code which will satisfy both cases 
       break; 

    // .... 
} 
+0

आपके उत्तर के लिए धन्यवाद! – AfroMan

1

स्विच मामलों किसी दिए गए अभिव्यक्ति के वैकल्पिक मूल्यांकन के लिए शाखाएं हैं। अभिव्यक्ति स्विच कोष्ठक में दी गई है और बाइट, लघु, चार, और int डेटा प्रकार हो सकती है।

स्विच स्टेटमेंट का शरीर स्विच ब्लॉक के रूप में जाना जाता है। स्विच ब्लॉक में एक कथन को एक या अधिक केस या डिफ़ॉल्ट लेबल के साथ लेबल किया जा सकता है। स्विच स्टेटमेंट इसकी अभिव्यक्ति का मूल्यांकन करता है, फिर मिलान करने वाले केस लेबल का पालन करने वाले सभी बयान निष्पादित करता है।

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

+0

वास्तव में प्रश्न (मेरे लिए) का जवाब नहीं दिया था, लेकिन अब मुझे पता है कि मैं स्विच केस में परिवर्तनीय प्रकारों के साथ कितना दूर जा सकता हूं :) धन्यवाद – AfroMan

+0

कोई जांच नहीं, यह भी ध्यान दें कि स्विच मामलों में कुछ जटिलताएं हैं जो संभावित गॉथस हो सकती हैं - अंत में 'डिफ़ॉल्ट 'केस की तरह, और ** एक ब्रेक' या' रिटर्न 'का उपयोग नहीं होने पर ** एक मामले में दूसरे मामले में गिरना। पाइथन जैसे कुछ भाषाओं ने उन्हें पूरी तरह से बाहर कर दिया है। http://stackoverflow.com/questions/374239/why-doesnt-python-have-a-switch-statement –

संबंधित मुद्दे