How the switch statement works?

switch Statement: जब हम किसी प्रोग्राम में ढेर सारी if Conditions का प्रयोग करते हैं, तो प्रोग्राम बहुत जटिल हो जाता है। इस वजह से प्रोग्राम को समझना व पढना काफी मुशिकल हो जाता है। इस कठिनाई से बचने के लिये हम एक और Control Statement switch का प्रयोग करते हैं। जिस तरह if Condition एक Two – way Condition Statement है, उसी तरह switch एक Multi-way Condition Statement है। यह बिल्कुल if – else if – else के जैसा ही काम करता है। इसकी सामान्य संरचना निम्नानुसार होती हैः

कार्यप्रणाली – इस संरचना में value1, value2……..value n expression या Variable हैं, जिन्हे case label कहा जाता है। इनके बाद Colon लगाना जरूरी होता है। ये सभी मान अलग-अलग होने चाहियें। Statement or Statement Block 1, Statement or Statement Block 2, ……… Statement or Statement Block n Statements का समूह है। इन Statements के समूहों में एक से अधिक Statements होने पर भी मंझले कोष्‍ठक की जरूरत नहीं होती है। फिर भी यदि ये कोष्‍ठक लगा दिए जाएं, तो भी C Compiler कोई परेशानी नहीं करता है।

switch Statement के Execution के लिये सर्वप्रथम variable या expression के मान की तुलना क्रम से एक-एक करके value1, value2 …… value n से की जाती है और जहां भी ये मान मिल जाता है, उस case label के अनुसार लिखे गये Statements का Execution हो जाता है। इस संरचना में सभी Statements Block के बाद break लिखा जाता है। यह Statements के समूह का अंत दर्शाता है व Statements Block के Execution के बाद प्रोग्राम Control को switch Statement के बाहर sequential Statement a पर ले जाता है। यदि यह break ना लिखा जाए तो Statement Block से Execution के बाद भी Program Control switch Statement Block के अंदर ही रहता है और आगे के Statement का Execution करता रहता है। जब तक इसे कोई break Statement नहीं मिल जाता, तब तक ये सभी labels के Statement Block का Execution करता रहता है।

switch Statement के लिये दी गई संरचना में default case label एक Optional Label है। यदि यह switch Statement में होता है व Expression या Variable का मान switch Statement में दिये गए किसी भी Statement से मेल नही करता, तो Program Control default case label पर चला जाता है और इसके अंतर्गत दिये गए Statement का Execution कर देता है। switch case labels को हम किसी भी क्रम में रख सकते हैं, यानी चौथे स्थान का case प्रथम स्थान पर, प्रथम स्थान का case तीसरे स्थान पर। default Statement को भी किसी भी स्थान पर रख सकते हैं।

अब हम पिछले प्रोग्राम को ही switch Statement द्वारा लिखते हैं। इस प्रोग्राम में दो variable define किये गए हैं। एक variable marks का Input लेता है। फिर marks मे 10 का भाग दिया है ताकि कुल 10 situations हो जाए और प्राप्त मान को a को assign किया गया है। अब जब कोई मान माना कि हमने 55 Input किया तो 55/10= 5 a को assign हो जाता है।

ध्यान दें कि यहां 55/10 का मान 5.5 होता है, लेकिन a int प्रकार का variable है, इसलिये यह दशमलव के भाग को छोड देता है और केवल पूर्णांक संख्‍या को ही accept करता है। अब switch Statement में a का मान check होता है कि a का मान किस case से मेल कर रहा है।

यहां switch का मान case 5 से मेल करता है, क्योंकि a का मान 5 है। इसलिये switch Statement के case 5 के Statement Block का Execution हो जाता है और Output में SECOND pISION print हो जाता है। Statement Print होते ही Program Control को break मिलता है और Program Control switch Statement Block से बाहर आ जाता है।

यदि हम कोई ऐसा अंक जो कि 39 से कम है, देते हैं तो कोई case मेल नही करता और switch के default Statement का Execution हो जाता है। ये प्रोग्राम बना कर विभिन्न मान दें और प्रोग्राम की testing करें। जब प्रोग्राम को Develop करके पहले से ज्ञात विभिन्न मानों द्वारा प्रोग्राम का Execution करके प्राप्त होने वाले Output को Accuracy के लिए Check किया जाता है, तो इस प्रक्रिया को प्रोग्राम की Testing करना कहते हैं।

चलिए, अब हम switch Statement को समझने के लिए एक उदाहरण Program बनाते हैं। ये उदाहरण Program किसी Student के Marks के आधार पर Student का Grade Output में Display करता है। Program निम्नानुसार हैः

/* Example of switch Condition Statement */
#include<stdio.h>
main()
{
    int marks, a;
    clrscr();

    printf(“n Enter Marks”);
    scanf(“%d”, &marks);

    a = marks / 10;

    switch ( a )
    {
        case 10 :
        case 9 :
        case 8 :
            printf(“HONOURS”);
            break;

        case 7 :
        case 6 :
            printf(“FIRST DIVISION”);
            break;

        case 5 :
            printf(“SECOND DIVISION”);
            break;

        case 4 :
            printf(“THIRD DIVISION”);
            break;

        default :
            printf(“FAIL”);
            break;
    }

    getch();
}

switch Statement की तरह ही goto Statement भी एक Unconditional Branching Statement होता है। हालांकि इस Statement को Modern Programming में ज्‍यादा Use नहीं किया जाता। लेकिन फिर भी कभी-कभी जिस जरूरत को goto Statement द्वारा जितनी आसानी से पूरा किया जा सकता है, उतनी आसानी से किसी अन्‍य Statement को उपयोग में नहीं ले सकते।

switch Statement को और भी कई तरह से उपयोग में लिया जा सकता है। विशेष रूप से जब हम Visual C++ को उपयोग में लेते हुए Windows Programming जैसे कि Game जैसे Multimedia या Graphics Application Software Develop करते हैं, तब Event Driven Programming के Events को Handle करने वाले Event Procedures में विभिन्‍न प्रकार के Events को बेहतर तरीके से Program करने के लिए किसी भी अन्‍य Statement की तुलना में switch Statement सबसे बेहतर Option होता है।

इसलिए विभिन्‍न Programming Concepts व Control Statements के बारे में अच्‍छी तरह से जानना एक Programmer के रूप में हमारे लिए हमेंशा काफी उपयोगी होता है। अत: यदि आपको switch व goto Statement  के बारे में पर्याप्‍त जानकारी नहीं है, तो आप कभी भी Visual Programming को ठीक से नहीं समझ सकते। इसलिए इन Statements को अच्‍छी तरह से समझने के लिए आप C Programming Language in Hindi पढ सकते हैं, जिसमें न केवल इन Programming Statements को बेहतर तरीके से समझाया गया है बल्कि Visual C का प्रयोग करते हुए Windows Programming के बारे में भी विस्‍तार से समझाया गया है। (switch Statement )

if ... else Statement - The most used statement.
How to Create a Virus using C Language Program?

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS