एक switch स्टेटमेंट एक वेरिएबल को मानों की सूची के विरुद्ध समानता के लिए टेस्ट करने की अनुमति देता है। प्रत्येक मान को एक case कहा जाता है, और जिस वेरिएबल को स्विच किया जा रहा है उसकी जांच प्रत्येक switch case के लिए की जाती है।
सिंटैक्स
C प्रोग्रामिंग भाषा में switch स्टेटमेंट का सिंटैक्स निम्नानुसार है −
switch(expression) {
case constant-expression:
statement(s);
break; /* वैकल्पिक */
case constant-expression:
statement(s);
break; /* वैकल्पिक */
/* आप कितने भी case स्टेटमेंट्स रख सकते हैं */
default: /* वैकल्पिक */
statement(s);
}
नियम
एक switch स्टेटमेंट में उपयोग किया जाने वाला expression इंटीग्रल या एन्यूमरेटेड प्रकार का होना चाहिए, या उस क्लास टाइप का होना चाहिए जिसमें इंटीग्रल या एन्यूमरेटेड प्रकार में एकल रूपांतरण फंक्शन हो।
आप एक switch के भीतर कितने भी case स्टेटमेंट्स रख सकते हैं। प्रत्येक case के बाद तुलना किए जाने वाले मान और एक कोलन होता है।
एक case के लिए constant-expression का डेटा टाइप switch में वेरिएबल के समान होना चाहिए, और यह एक स्थिरांक या लिटरल होना चाहिए।
जब स्विच किया जा रहा वेरिएबल किसी case के बराबर होता है, तो उस case के बाद के स्टेटमेंट्स तब तक निष्पादित होंगे जब तक break स्टेटमेंट नहीं पहुंच जाता।
जब break स्टेटमेंट पहुंच जाता है, तो switch समाप्त हो जाता है, और कंट्रोल फ्लो switch स्टेटमेंट के बाद की अगली लाइन पर चला जाता है।
हर case में break होना जरूरी नहीं। यदि कोई break नहीं आता, तो कंट्रोल फ्लो बाद के cases में तब तक गिरता रहेगा जब तक break नहीं पहुंच जाता।
एक switch स्टेटमेंट में एक वैकल्पिक default case हो सकता है, जो switch के अंत में आना चाहिए। डिफॉल्ट case का उपयोग तब किया जा सकता है जब कोई भी case सही न हो। डिफॉल्ट case में break की आवश्यकता नहीं होती।
उदाहरण कोड
#include <stdio.h>
int main() {
/* स्थानीय वेरिएबल परिभाषा */
char grade = 'B';
switch(grade) {
case 'A':
printf("Excellent!\n");
break;
case 'B':
case 'C':
printf("Well done\n");
break;
case 'D':
printf("You passed\n");
break;
case 'F':
printf("Better try again\n");
break;
default:
printf("Invalid grade\n");
}
printf("Your grade is %c\n", grade);
return 0;
}
आउटपुट
Well done Your grade is B