जावा में कई विकल्पों के लिए स्विच स्टेटमेंट का उपयोग करना

यदि आपके जावा प्रोग्राम को दो या तीन क्रियाओं के बीच चुनाव करना है, तो अगर तब या बयान पर्याप्त होगा। हालांकि अगर तब या जब कोई प्रोग्राम बनाने के लिए कई विकल्प चुनने पड़ते हैं तो कथन बोझिल लगने लगता है। केवल इतने ही हैं और... अगर कोड को अस्वाभाविक लगने से पहले आप जो कथन जोड़ना चाहते हैं। जब कई विकल्पों में निर्णय लेने की आवश्यकता होती है, तो स्विच स्टेटमेंट का उपयोग करें।

स्विच स्टेटमेंट

एक स्विच स्टेटमेंट एक प्रोग्राम को a के मान की तुलना करने की क्षमता देता है अभिव्यक्ति वैकल्पिक मूल्यों की सूची। उदाहरण के लिए, कल्पना करें कि आपके पास एक ड्रॉप-डाउन मेनू था जिसमें संख्या 1 से 4 थी। किस नंबर के आधार पर चुना जाता है, आप चाहते हैं कि आपका कार्यक्रम कुछ अलग करे:

// मान लीजिए कि उपयोगकर्ता नंबर 4 चुनता है
int menuChoice = 4;
स्विच (MenuChoice)
{
मामला एक:
JoptionPane.showMessageDialog (अशक्त, "आपने नंबर 1 चुना");
टूटना;
मामला 2:
JoptionPane.showMessageDialog (अशक्त, "आपने नंबर 2 को चुना");
टूटना;
केस 3:
JoptionPane.showMessageDialog (अशक्त, "आपने नंबर 3 चुना");
टूटना;
// यह विकल्प चुना जाता है क्योंकि मूल्य 4 के मूल्य से मेल खाता है
instagram viewer

// menuChoise वैरिएबल
स्थिति 4: JOptionPane.showMessageDialog (अशक्त, "आपने नंबर 4 चुना"); टूटना;
चूक:
JoptionPane.showMessageDialog (अशक्त, "कुछ गलत हो गया!");
टूटना;
}

यदि आप स्विच स्टेटमेंट के सिंटैक्स को देखते हैं तो आपको कुछ बातों पर ध्यान देना चाहिए:

1. उस मान वाले चर को तुलना करने की आवश्यकता होती है जिसे कोष्ठक के अंदर सबसे ऊपर रखा जाता है।

2. प्रत्येक वैकल्पिक विकल्प एक केस लेबल के साथ शुरू होता है। शीर्ष के खिलाफ तुलना करने के लिए मूल्य परिवर्तनशील अगले, एक बृहदान्त्र के बाद आता है। उदाहरण के लिए, केस 1: मान 1 के बाद का केस लेबल है - यह केवल आसानी से मामला 123: या केस -9 हो सकता है। आपके पास जितने आवश्यक विकल्प हो सकते हैं।

3. यदि आप उपर्युक्त वाक्यविन्यास को देखते हैं, तो चौथा वैकल्पिक विकल्प हाइलाइट किया जाता है - केस लेबल, वह कोड जिसे वह निष्पादित करता है (यानी, जोपियनपेन) और एक ब्रेक स्टेटमेंट। ब्रेक स्टेटमेंट कोड के अंत का संकेत देता है जिसे निष्पादित करने की आवश्यकता है। यदि आप देखते हैं, तो आप देखेंगे कि हर वैकल्पिक विकल्प एक ब्रेक स्टेटमेंट के साथ समाप्त होता है। ब्रेक स्टेटमेंट में याद रखना बहुत महत्वपूर्ण है। निम्नलिखित कोड पर विचार करें:

 // मान लीजिए कि उपयोगकर्ता नंबर 1 चुनता है
int menuChoice = 1;
स्विच (MenuChoice)
मामला एक:
JoptionPane.showMessageDialog (अशक्त, "आपने नंबर 1 चुना");
मामला 2:
JoptionPane.showMessageDialog (अशक्त, "आपने नंबर 2 को चुना");
टूटना;
केस 3:
JoptionPane.showMessageDialog (अशक्त, "आपने नंबर 3 चुना");
टूटना;
मामला 4:
JoptionPane.showMessageDialog (अशक्त, "आपने नंबर 4. चुना");
टूटना;
चूक:
JoptionPane.showMessageDialog (अशक्त, "कुछ गलत हो गया!");
टूटना;
}

आप क्या होने की उम्मीद करते हैं संवाद बॉक्स यह कहते हुए कि "आपने नंबर 1 चुना है", लेकिन क्योंकि पहले केस लेबल से मेल खाता कोई ब्रेक स्टेटमेंट नहीं है, दूसरे केस लेबल में कोड भी निष्पादित होता है। इसका मतलब है कि अगला डायलॉग बॉक्स "आपने चुना नंबर 2" भी दिखाई देगा।

4. स्विच स्टेटमेंट के निचले भाग में एक डिफ़ॉल्ट लेबल है। यह मामले में एक सुरक्षा जाल की तरह है, केस लेबल के मूल्यों में से कोई भी इसके साथ तुलना किए जाने वाले मूल्य से मेल नहीं खाता है। वांछित विकल्पों में से कोई भी चुने जाने पर कोड निष्पादित करने का एक तरीका प्रदान करना बहुत उपयोगी है।

यदि आप हमेशा अन्य विकल्पों में से किसी एक को चुनने की उम्मीद करते हैं, तो आप डिफ़ॉल्ट लेबल को छोड़ सकते हैं, लेकिन आपके द्वारा बनाए गए प्रत्येक स्विच स्टेटमेंट के अंत में एक डालने के लिए एक अच्छी आदत है। ऐसा प्रतीत नहीं हो सकता है कि इसका कभी भी उपयोग किया जाएगा लेकिन गलतियाँ कोड में रेंग सकती हैं और त्रुटि को पकड़ने में मदद कर सकती हैं।

चूंकि JDK 7

JDK 7 की रिलीज के साथ जावा सिंटैक्स में परिवर्तन का उपयोग करने की क्षमता है स्ट्रिंग्स स्विच स्टेटमेंट में। एक स्ट्रिंग स्टेटमेंट में स्ट्रिंग मानों की तुलना करने में सक्षम होना बहुत आसान हो सकता है:

स्ट्रिंग नाम = "बॉब";
स्विच (name.toLowerCase) ()
{
मामला "जो":
JoptionPane.showMessageDialog (अशक्त, "गुड मॉर्निंग, जो!");
टूटना;
मामला "माइकल":
JoptionPane.showMessageDialog (अशक्त, "यह कैसा चल रहा है, माइकल?")।
टूटना;
मामला "बॉब":
JoptionPane.showMessageDialog (अशक्त, "बॉब, मेरे पुराने मित्र!");
टूटना;
मामला "बिली":
JoptionPane.showMessageDialog (अशक्त, "दोपहर बिली, बच्चे कैसे हैं"));
टूटना;
चूक:
JoptionPane.showMessageDialog (अशक्त, "आपसे मिलकर खुशी हुई, जॉन डो।");
टूटना;
}

दो स्ट्रिंग मूल्यों की तुलना करते समय, यह बहुत आसान हो सकता है यदि आप सुनिश्चित करें कि वे सभी एक ही मामले में हैं। .ToLowerCase विधि का उपयोग करने का अर्थ है कि सभी केस लेबल मान अंदर हो सकते हैं लोअरकेस.

स्विच स्टेटमेंट के बारे में याद रखने वाली बातें

• वेरिएबल के प्रकार की तुलना एक चार, बाइट, शॉर्ट, इंट, कैरेक्टर, बाइट, शॉर्ट, इंटेगर, स्ट्रिंग या एनम टाइप से की जानी चाहिए।

• केस लेबल के आगे का मान परिवर्तनशील नहीं हो सकता। इसे एक स्थिर अभिव्यक्ति (जैसे, एक शाब्दिक, एक शाब्दिक) होना चाहिए।

• सभी मामले लेबल में निरंतर अभिव्यक्तियों के मूल्य अलग-अलग होने चाहिए। निम्नलिखित एक संकलन समय त्रुटि में परिणाम होगा:

स्विच (MenuChoice)
{
मामला 323:
JOptionPane.showMessageDialog (अशक्त, "आपने विकल्प 1 चुना");
टूटना;
मामला 323:
JoptionPane.showMessageDialog (अशक्त, "आपने विकल्प 2 चुना");
टूटना;

• स्विच स्टेटमेंट में केवल एक डिफ़ॉल्ट लेबल हो सकता है।

• स्विच स्टेटमेंट के लिए ऑब्जेक्ट का उपयोग करते समय (जैसे, स्ट्रिंग, इंटेगर, कैरेक्टर) सुनिश्चित करें कि यह शून्य नहीं है। एक अशक्त वस्तु स्विच स्टेट निष्पादित होने पर एक रनटाइम त्रुटि के परिणामस्वरूप होगी।

instagram story viewer