MCAWALA

C Programming Tutorial

C प्रोग्रामिंग में switch-case स्टेटमेंट

1. Overview

जब हमें एक से अधिक स्थितियों (conditions) के आधार पर कोई निर्णय लेना हो, तब if-else के अलावा एक और विकल्प होता है – switch-case

यह विशेष रूप से उपयोगी होता है जब हमारे पास कई विकल्प हों और हमें हर विकल्प के लिए अलग-अलग कार्य करने हों।

2. switch-case क्या होता है?

switch एक निर्णय नियंत्रण स्टेटमेंट है जो किसी वैरिएबल या expression के मान के आधार पर कई विकल्पों में से किसी एक को चुनता है।

3. सिंटैक्स (Syntax)


switch (expression) {
    case value1:
        // कोड जब value1 से मेल खाए
        break;

    case value2:
        // कोड जब value2 से मेल खाए
        break;

    ...

    default:
        // कोई भी case match न होने पर
}
        
  • expression: यह कोई variable या expression होता है जिसका मान cases से मिलाया जाता है।
  • case: हर case एक मान के लिए होता है।
  • break: यह स्टेटमेंट switch से बाहर निकलने के लिए होता है।
  • default: यह वैकल्पिक होता है और तब चलता है जब कोई भी case match नहीं करता।

4. एक साधारण उदाहरण

नीचे एक उदाहरण दिया गया है जो उपयोगकर्ता द्वारा दर्ज किए गए दिन के नंबर के आधार पर सप्ताह का दिन बताता है:


#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;
}
        

5. break स्टेटमेंट का महत्व

यदि हम break का उपयोग नहीं करते, तो एक बार किसी case के match हो जाने पर उसके बाद के सभी cases भी execute हो जाते हैं। इसे fall through कहते हैं।

उदाहरण बिना break के:


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;
}
        

6. default केस

default तब चलता है जब कोई भी case match नहीं करता। यह वैकल्पिक है, लेकिन उपयोग करना एक अच्छी आदत है।

उदाहरण:


int grade = 9;

switch (grade) {
    case 10:
        printf("शानदार!");
        break;
    case 9:
        printf("बहुत अच्छा!");
        break;
    case 8:
        printf("अच्छा");
        break;
    default:
        printf("कोशिश करें!");
}
        

7. switch-case बनाम if-else

विशेषता if-else switch-case
उपयोग जब शर्तें complex हों जब options fixed हों
डेटा टाइप सभी प्रकार के expressions int, char (enumerated types)
स्पष्टता कम अधिक स्पष्ट

8. Nested switch-case

हम 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");
}
        

9. ध्यान रखने योग्य बातें

  • case लेबल्स को constant मान होना चाहिए।
  • duplicate case वैल्यू नहीं होनी चाहिए।
  • switch में float या double का उपयोग नहीं कर सकते।
  • हर case के अंत में break देना आवश्यक नहीं है, पर यह recommended है।

10. निष्कर्ष

switch-case एक प्रभावी तरीका है multiple विकल्पों में से किसी एक के आधार पर निर्णय लेने का। जब आपके पास सीमित और निश्चित विकल्प होते हैं, तो यह if-else की तुलना में ज़्यादा readable और structured होता है।

break और default का सही उपयोग करके आप switch-case को और अधिक प्रभावी बना सकते हैं।