जब हमें एक से अधिक स्थितियों (conditions) के आधार पर कोई निर्णय लेना हो, तब if-else के अलावा एक और विकल्प होता है – switch-case।
यह विशेष रूप से उपयोगी होता है जब हमारे पास कई विकल्प हों और हमें हर विकल्प के लिए अलग-अलग कार्य करने हों।
switch एक निर्णय नियंत्रण स्टेटमेंट है जो किसी वैरिएबल या expression के मान के आधार पर कई विकल्पों में से किसी एक को चुनता है।
switch (expression) {
case value1:
// कोड जब value1 से मेल खाए
break;
case value2:
// कोड जब value2 से मेल खाए
break;
...
default:
// कोई भी case match न होने पर
}
नीचे एक उदाहरण दिया गया है जो उपयोगकर्ता द्वारा दर्ज किए गए दिन के नंबर के आधार पर सप्ताह का दिन बताता है:
#include <stdio.h>
int main() {
int day;
printf("1 से 7 तक कोई एक संख्या दर्ज करें: ");
scanf("%d", &day);
switch (day) {
case 1:
printf("सोमवार");
break;
case 2:
printf("मंगलवार");
break;
case 3:
printf("बुधवार");
break;
case 4:
printf("गुरुवार");
break;
case 5:
printf("शुक्रवार");
break;
case 6:
printf("शनिवार");
break;
case 7:
printf("रविवार");
break;
default:
printf("कृपया 1 से 7 तक कोई मान्य संख्या दर्ज करें।");
}
return 0;
}
यदि हम break
का उपयोग नहीं करते, तो एक बार किसी case के match हो जाने पर उसके बाद के सभी cases भी execute हो जाते हैं। इसे fall through कहते हैं।
int x = 2;
switch (x) {
case 1:
printf("एक\n");
case 2:
printf("दो\n");
case 3:
printf("तीन\n");
}
आउटपुट:
दो
तीन
सही करने के लिए break जोड़ें:
switch (x) {
case 1:
printf("एक\n");
break;
case 2:
printf("दो\n");
break;
case 3:
printf("तीन\n");
break;
}
default
तब चलता है जब कोई भी case
match नहीं करता। यह वैकल्पिक है, लेकिन उपयोग करना एक अच्छी आदत है।
int grade = 9;
switch (grade) {
case 10:
printf("शानदार!");
break;
case 9:
printf("बहुत अच्छा!");
break;
case 8:
printf("अच्छा");
break;
default:
printf("कोशिश करें!");
}
विशेषता | if-else | switch-case |
---|---|---|
उपयोग | जब शर्तें complex हों | जब options fixed हों |
डेटा टाइप | सभी प्रकार के expressions | int, char (enumerated types) |
स्पष्टता | कम | अधिक स्पष्ट |
हम switch के अंदर एक और switch भी इस्तेमाल कर सकते हैं। इसे nested switch कहते हैं।
int dept = 1, year = 2;
switch (dept) {
case 1:
switch (year) {
case 1:
printf("C Programming");
break;
case 2:
printf("Data Structures");
break;
}
break;
default:
printf("Invalid Department");
}
switch-case एक प्रभावी तरीका है multiple विकल्पों में से किसी एक के आधार पर निर्णय लेने का। जब आपके पास सीमित और निश्चित विकल्प होते हैं, तो यह if-else की तुलना में ज़्यादा readable और structured होता है।
break और default का सही उपयोग करके आप switch-case को और अधिक प्रभावी बना सकते हैं।