C++ में Switch स्टेटमेंट का उपयोग कैसे करें
कंडीशनल स्टेटमेंट्स सभी प्रोग्रामिंग भाषाओं की एक सामान्य विशेषता हैं। इन स्टेटमेंट्स का उपयोग प्रोग्राम के प्रवाह को नियंत्रित करने और यह निर्दिष्ट करने के लिए किया जाता है कि कोड के विशिष्ट ब्लॉक्स कब निष्पादित होने चाहिए।
C++ में उपयोग किए जाने वाले मुख्य कंडीशनल स्टेटमेंट्स if और if...else स्टेटमेंट्स हैं। इसके अलावा, C++ switch स्टेटमेंट प्रदान करता है। यह स्टेटमेंट एक एक्सप्रेशन का मूल्यांकन कई संभावित केसेज के विरुद्ध करता है और यदि एक्सप्रेशन उस ब्लॉक के संबंधित केस से मेल खाता है तो कोड का एक ब्लॉक निष्पादित करता है। Switch स्टेटमेंट कई if...else स्टेटमेंट्स वाले if स्टेटमेंट के समान व्यवहार करता है।
इस ट्यूटोरियल में, हम एक उदाहरण के माध्यम से चर्चा करेंगे कि C++ में switch स्टेटमेंट का उपयोग कैसे करें। हम break और default कीवर्ड्स का उपयोग switch स्टेटमेंट के साथ कैसे करें, इस पर भी चर्चा करेंगे। इस गाइड को पढ़ने के बाद, आप C++ switch स्टेटमेंट का उपयोग करने में विशेषज्ञ होंगे।
C++ कंडीशनल स्टेटमेंट्स
if और if...else जैसे कंडीशनल स्टेटमेंट्स का उपयोग प्रोग्राम में निर्णय लेने के लिए किया जाता है। उदाहरण के लिए, एक if स्टेटमेंट एक प्रोग्राम को निर्देश दे सकता है कि यदि कोई उपयोगकर्ता 16 वर्ष से अधिक आयु का है, या यदि बुधवार है, तो कोड का एक ब्लॉक चलाएं।
if और if...else स्टेटमेंट्स कंडीशनल स्टेटमेंट्स के सबसे सामान्य रूप हैं। if और if...else स्टेटमेंट्स कोड का एक ब्लॉक चलाते हैं यदि कोई शर्त सत्य है; अन्यथा, वे कुछ नहीं करते। यहां C++ if स्टेटमेंट का एक उदाहरण है:
int age = 15;
if (age > 16) {
cout<<"This user is over the age of 16."
}
इस उदाहरण में, हमारा कोड मूल्यांकन करता है कि वेरिएबल age 16 से अधिक है या नहीं। यदि यह है, तो वाक्य This user is over the age of 16 कंसोल पर प्रिंट होता है; अन्यथा, कुछ नहीं होता। इस मामले में, हमारा उपयोगकर्ता 15 वर्ष का है, इसलिए age > 16 असत्य का मूल्यांकन करता है। इसलिए, प्रोग्राम हमारे if स्टेटमेंट से जुड़े कोड को निष्पादित नहीं करता है।
लेकिन क्या होगा यदि आप कई शर्तों के विरुद्ध मूल्यांकन करना चाहते हैं?
यहीं switch स्टेटमेंट आता है। जबकि आप if...else स्टेटमेंट्स का उपयोग if स्टेटमेंट में कई शर्तों के लिए मूल्यांकन करने के लिए कर सकते हैं, यह दृष्टिकोण अक्षम हो सकता है और आपके कोड को पढ़ना अधिक कठिन बना सकता है। इसलिए, डेवलपर्स अक्सर किसी स्टेटमेंट का मूल्यांकन कई संभावित केसेज के विरुद्ध करने के लिए switch स्टेटमेंट्स का उपयोग करते हैं।
C++ Switch स्टेटमेंट
Switch स्टेटमेंट, जिसे switch...case स्टेटमेंट के रूप में भी जाना जाता है, आपको यह जांचने की अनुमति देता है कि कोई एक्सप्रेशन कई केसेज में से एक के बराबर है या नहीं। यदि घोषित एक्सप्रेशन switch ब्लॉक में केसेज में से एक से मेल खाता है (दूसरे शब्दों में, बराबर है), तो उस केस से जुड़ा विशिष्ट कोड निष्पादित किया जाएगा।
Switch स्टेटमेंट्स में एक या अधिक केस स्टेटमेंट्स होते हैं। प्रोग्राम आपके लक्ष्य एक्सप्रेशन के विरुद्ध मूल्यांकन की जाने वाली शर्त(शर्तों) को घोषित करने के लिए केस स्टेटमेंट(s) का उपयोग करता है।
Switch स्टेटमेंट्स टेस्ट करने के लिए एक एक्सप्रेशन स्वीकार करते हैं, जिसे पैरेंथेसिस से घिरा होता है, साथ ही एक या अधिक केस जिनके विरुद्ध आप अपने एक्सप्रेशन का मूल्यांकन करना चाहते हैं। ये केस घुंघराले ब्रैकेट के भीतर संलग्न होते हैं।
C++ switch स्टेटमेंट के लिए सिंटैक्स यहां दिया गया है:
switch (expression) {
case firstCase:
// यदि एक्सप्रेशन firstCase से मेल खाता है तो निष्पादित करने के लिए कोड
break;
case secondCase:
// यदि एक्सप्रेशन secondCase से मेल खाता है तो निष्पादित करने के लिए कोड
break;
default:
// यदि कोई एक्सप्रेशन मेल नहीं खाता तो निष्पादित करने के लिए कोड
}
उपरोक्त C++ switch स्टेटमेंट के लिए तर्क यहां दिया गया है:
- प्रोग्राम एक्सप्रेशन का मूल्यांकन करता है।
- एक्सप्रेशन की तुलना firstCase से की जाती है। यदि ये मेल खाते हैं, तो प्रोग्राम firstCase ब्लॉक में कोड निष्पादित करेगा। फिर, break कीवर्ड चलेगा, जो switch ब्लॉक को समाप्त कर देगा।
नोट: हम इस लेख के बाद के खंड में break कीवर्ड पर चर्चा करते हैं। अनिवार्य रूप से, यह कीवर्ड प्रोग्राम को वर्तमान switch ब्लॉक से आगे बढ़ने के लिए कहता है।
- यदि एक्सप्रेशन firstCase से मेल नहीं खाता है, तो एक्सप्रेशन की तुलना secondCase से की जाएगी।
- यदि एक्सप्रेशन secondCase से मेल खाता है, तो प्रोग्राम secondCase ब्लॉक के अंदर कोड निष्पादित करेगा, और break स्टेटमेंट switch ब्लॉक को समाप्त कर देगा।
- यदि एक्सप्रेशन switch ब्लॉक में किसी केस से मेल नहीं खाता है, तो प्रोग्राम डिफ़ॉल्ट केस स्टेटमेंट की सामग्री को निष्पादित करेगा।
नोट: हम इस लेख के बाद के खंड में, switch स्टेटमेंट्स के संबंध में डिफ़ॉल्ट स्टेटमेंट की अवधारणा पर चर्चा करते हैं। डिफ़ॉल्ट एक कीवर्ड है जो प्रोग्राम को बताता है कि क्या करना है यदि switch ब्लॉक के भीतर कोई केस स्टेटमेंट एक्सप्रेशन से मेल नहीं खाता।
एक switch स्टेटमेंट में, प्रोग्राम पहले पहले केस का मूल्यांकन करेगा। यदि वह सत्य का मूल्यांकन नहीं करता है, तो प्रोग्राम बाद के केसेज का मूल्यांकन तब तक करेगा जब तक कोई शर्त पूरी नहीं होती या जब तक सभी शर्तों का मूल्यांकन नहीं हो जाता।
C++ Switch का उदाहरण
आइए चरण-दर-चरण एक उदाहरण के माध्यम से देखें कि C++ में switch स्टेटमेंट्स कैसे काम करते हैं।
मान लीजिए हम एक प्रोग्राम लिख रहे हैं जो हमें बताता है कि वीकेंड तक कितने दिन बचे हैं। इस प्रोग्राम में, सप्ताह के प्रत्येक दिन को एक पूर्णांक द्वारा दर्शाया जाएगा - उदाहरण के लिए, सोमवार 1 होगा, मंगलवार 2 होगा, बुधवार 3 होगा, और इसी तरह।
यह प्रोग्राम सप्ताह के वर्तमान दिन (एक पूर्णांक के रूप में दर्शाया गया) को लेगा और उसकी तुलना केसेज के एक सेट से करेगा। प्रत्येक केस प्रोग्राम को एक वाक्य प्रिंट करने का निर्देश देगा जो वर्तमान सप्ताह के दिन के आधार पर वीकेंड तक शेष दिनों की संख्या बताता है।
इस कार्य को पूरा करने के लिए हम निम्नलिखित कोड का उपयोग कर सकते हैं:
#include <iostream>
using namespace std;
int main() {
int dayOfWeek = 3;
switch (dayOfWeek) {
case 1:
cout<<"There are 5 days until the weekend!";
break;
case 2:
cout<<"There are 4 days until the weekend!";
break;
case 3:
cout<<"There are 3 days until the weekend!";
break;
case 4:
cout<<"There are 2 days until the weekend!";
break;
case 5:
cout<<"There is 1 day until the weekend!";
break;
}
}
हमारा कोड वापस लौटाता है:
There are 3 days until the weekend.
आइए हमारे कोड को तोड़ें। पहले, हम dayOfWeek नामक एक वेरिएबल घोषित करते हैं जो वर्तमान सप्ताह के दिन को पूर्णांक के रूप में स्टोर करता है। फिर हम एक switch स्टेटमेंट का उपयोग करते हैं जो पांच केस निर्दिष्ट करता है।
पहले, हमारा प्रोग्राम जांचता है कि क्या dayOfWeek 1 के बराबर है। यदि यह है, तो हमारा प्रोग्राम There are 5 days until the weekend! कंसोल पर प्रिंट करता है, जिसके बाद यह switch स्टेटमेंट से बाहर निकल जाता है।
यदि dayOfWeek 1 के बराबर नहीं है, तो प्रोग्राम अगले केस का मूल्यांकन करता है। यह तब तक चलता रहेगा जब तक प्रोग्राम हमारे switch स्टेटमेंट में हर केस का मूल्यांकन नहीं कर लेता - जब तक कि केसेज में से एक सत्य का मूल्यांकन नहीं करता, जिस बिंदु पर एक break स्टेटमेंट चलेगा और हमारा लूप switch स्टेटमेंट समाप्त हो जाएगा।
हमारे उदाहरण में, हमने कहा कि सप्ताह का दिन 3 है - जिसका अर्थ है कि यह बुधवार है। परिणामस्वरूप, हमारा प्रोग्राम There are 3 days until the weekend! कंसोल पर प्रिंट करता है। फिर, हमारा प्रोग्राम कोड के switch ब्लॉक को समाप्त करता है और मुख्य प्रोग्राम चलाना जारी रखता है।
C++ Break
C++ switch स्टेटमेंट्स आमतौर पर प्रत्येक केस में break कीवर्ड का उपयोग करते हैं, जैसा हमने ऊपर उदाहरण में किया था। जब प्रोग्राम एक break स्टेटमेंट निष्पादित करता है, तो दिए गए ब्लॉक के भीतर कोड निष्पादित होना बंद हो जाएगा और बाकी प्रोग्राम चलता रहेगा।
Break स्टेटमेंट्स का उपयोग अक्सर switch स्टेटमेंट्स के साथ किया जाता है क्योंकि वे प्रोग्राम को switch स्टेटमेंट में बाकी केसेज का मूल्यांकन करने से रोकते हैं।
यहां हमारे ऊपर दिए गए विस्तारित उदाहरण से लिया गया switch स्टेटमेंट में break कीवर्ड का एक उदाहरण है:
...
case 3:
cout<<"There are 3 days until the weekend!";
break;
...
तो, उपरोक्त उदाहरण में, यदि dayOfWeek 3 के बराबर है, तो हमारा प्रोग्राम एक break स्टेटमेंट निष्पादित करेगा ताकि कोई और केसेज मूल्यांकन न किए जाएं। यह समझ में आता है क्योंकि यदि dayOfWeek 3 के बराबर है, तो यह 4 या 5 के बराबर नहीं हो सकता, जो हमारे switch स्टेटमेंट में अगले केस हैं।
यदि dayOfWeek 3 के बराबर है, तो संदेश There are 3 days until the weekend! कंसोल पर प्रिंट होता है। फिर, switch स्टेटमेंट निष्पादित होना बंद हो जाता है क्योंकि एक break स्टेटमेंट प्रोग्राम को switch ब्लॉक से आगे बढ़ने का निर्देश देता है।
C++ Default
C++ में, वैकल्पिक डिफ़ॉल्ट केस कीवर्ड हमारे कोड को बताता है कि क्या करना है यदि कोई केस सत्य का मूल्यांकन नहीं करता है।
हमारे ऊपर के उदाहरण में, हमारा कोड केवल वीकडेज के लिए जिम्मेदार है। इसलिए, यदि यह पहले से ही वीकेंड है, तो हमारा प्रोग्राम कुछ नहीं करेगा। यदि हम एक डिफ़ॉल्ट कोड स्टेटमेंट का उपयोग करते हैं, तो हम अपने कोड को निर्देश दे सकते हैं कि यदि हमारे कोई केस पूरे नहीं होते हैं तो कोई कार्रवाई करें।
मान लीजिए हम कंसोल पर संदेश It's the weekend! प्रिंट करना चाहते हैं यदि यह शनिवार या रविवार होता। हम ऊपर से अपने switch स्टेटमेंट उदाहरण और निम्नलिखित कोड का उपयोग करके इस कार्य को पूरा कर सकते हैं:
...
case 5:
cout<<"There is 1 day until the weekend!";
break;
default:
cout<<"It's the weekend!";
break;
...
इस कोड के अनुसार, यदि dayOfWeek हमारे द्वारा निर्दिष्ट किसी भी केस के बराबर नहीं है - या, दूसरे शब्दों में, यदि dayOfWeek 6 या 7 के बराबर है - तो डिफ़ॉल्ट स्टेटमेंट की सामग्री निष्पादित होगी। इसलिए, यदि आज शनिवार होता, उदाहरण के लिए, निम्नलिखित संदेश कंसोल पर प्रिंट होता:
It's the weekend!
निष्कर्ष
Switch स्टेटमेंट का उपयोग C++ में किसी स्टेटमेंट का मूल्यांकन कई संभावित परिणामों के विरुद्ध करने के लिए किया जाता है। यदि इन एक्सप्रेशन्स में से एक सत्य का मूल्यांकन करता है, तो प्रोग्राम उस परिणाम से जुड़े कोड को निष्पादित करेगा। यदि कोई एक्सप्रेशन सत्य का मूल्यांकन नहीं करता है, तो प्रोग्राम डिफ़ॉल्ट स्टेटमेंट की सामग्री को निष्पादित करेगा, यदि निर्दिष्ट किया गया हो।
इस ट्यूटोरियल ने एक उदाहरण के साथ चर्चा की कि C++ switch स्टेटमेंट और break, और default कीवर्ड्स का उपयोग switch के साथ कैसे करें। अब आप अपने कोड में switch स्टेटमेंट्स का उपयोग एक प्रो की तरह करने के लिए तैयार हैं!