Looping statement in C Language

    Looping statement 

    Statements के किसी ब्लॉक को बार-बार execute(एग्जीक्यूट) करने की प्रक्रिया को looping(लूपिंग) कहते हैं। एक स्टेटमेंट ब्लॉक को loop की सहायता से कई बार execute(एग्जीक्यूट) करवाया जा सकता है। लूपिंग में स्टेटमेंट का ब्लॉक तब तक एग्जीक्यूट होता है जब तक रूप में दी गई कंडीशन true रहती है। सी लैंग्वेज में लूट के मुख्य 2 भाग होते हैं:-

    (i) लूप की बॉडी(body) या block

    (ii) कंट्रोल स्टेटमेंट (control statement)
            (a) entry controlled loop
            (b) exit controlled loop

    C language में looping के लिए तीन control statement होते हैं।

    (1) while स्टेटमेंट 
    (2) do स्टेटमेंट 
    (3) for स्टेटमेंट 

    (1) while Loop:-

    while लूप entry controlled loop की श्रेणी में आता है क्योंकि इसमें रूप में प्रवेश करने से पहले कंडीशन की जांच(check) होती है। इस रूप में जब तक कंडीशन true होती है तब तक इसकी Body में दी हुई statements(स्टेटमेंट्स) execute(एग्जीक्यूट) होती है। यह प्रक्रिया तब तक चलती है जब तक की कंडीशन false ना हो जाए। while प्रारूप के निम्न प्रकार होता है:-

    Initialization section;
    while(test condition)
                    {
                        Statement 1;
                        Statement 2;
                                .........
                            ..........
                        Statement n;
    }


    ऊपर दिए गए Initialization section में test condition में प्रयोग किया जाने वाले वेरिएबल को प्रारंभ में वैल्यू दी जाती है। टेस्ट कंडीशन में उस वेरिएबल को प्रयोग करते हुए कंडीशन की जांच की जाती है।

    लूप स्टेटमेंट की मदद से हम एक ही स्टेटमेंट को जितनी बार चाहे उतनी बार रिपीट कर सकते हैं।
    जैसे यदि हम बिना किसी लूप की मदद के 10 बार hello C Language प्रिंट करवाना हो तो हम 10 बार printf(...) फंक्शन लिखेंगे और इसमें हम hello C Language या एक printf(...) फंक्शन के अंदर 10 बार hello C Language लिखेंगे। 
    जैसे:-


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
          printf("\nHello C Language");
          printf("\nHello C Language");
          printf("\nHello C Language");
          printf("\nHello C Language");
          printf("\nHello C Language");
          printf("\nHello C Language");
          printf("\nHello C Language");
          printf("\nHello C Language");
          printf("\nHello C Language");
          printf("\nHello C Language");
           getch();
        }


    इसी तरह से यदि हमें किसी स्टेटमेंट को बहुत बड़ी मात्रा में प्रिंट करवाना हो जैसे 1000-2000 बार प्रिंट करवाना हो तो हमारा प्रोग्राम बहुत ज्यादा heavy हो जाएगा।
    जिससे प्रोग्राम को रन कराने के लिए बहुत ज्यादा टाइम लगेगा। और इसी के साथ में लाइन ऑफ कोड भी बहुत ज्यादा लिखना पड़ेगा।

    यदि हम इसी को loop की मदद से प्रिंट करवाएं तो हमें केवल दो या तीन लाइन नहीं लिखनी पड़ेगी।

    Example:- 


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
           int x = 1;
           while (x<=5)
           {
              printf("\nHello C Language");
              x++;
           }
           getch();
        }

    Output:-

    Hello C Language
    Hello C Language
    Hello C Language
    Hello C Language
    Hello C Language


    Explain Example:-

    ऊपर दिए गए प्रोग्राम में जब प्रोग्राम का प्रवाह while(x<=5)पर पहुंचेगा तो x कमान एक होगा। चूंकि 1<=5)कंडीशन trueहोती है, अच्छा प्रोग्राम का प्रवाह while ब्लॉक में हो जाएगा और Hello C Languageप्रिंट हो जाएगा। तत्पश्चात x++वेरिएबल x के मान में वृद्धि कर उसका मान 2 कर देगा।

    जब प्रवाह whileब्लॉक के अंत में } आएगा तो प्रवाह को वापस while स्टेटमेंट पर भेज दिया जाएगा। अब चूंकि (x<=5)अर्थात x<=5का परिणाम वापस trueहै, अतः प्रोग्राम का कंट्रोल वापस whileब्लॉक में प्रवेश कर जाएगा। यह प्रक्रिया तब तक चलेगी जब तक कीxका मान 5से अधिक ना हो जाता।

    1 से 10 तक संख्या प्रिंट करने का प्रोग्राम


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
           int i = 1;
           while (i<=5)
           {
              printf("\na = %d",i);    
              i++;
           }
           getch();
        }

    Output:-

    a = 1
    a = 2
    a = 3
    a = 4
    a = 5
    a = 6
    a = 7
    a = 8
    a = 9
    a = 10


    (2) do स्टेटमेंट/ do..while loop:-

    do लूप exit controlled loop की श्रेणी में आता है, क्योंकि इसमें लुफ्त से बाहर निकलते समय कंडीशन की जांच(check) होती है। while लुप की भाति यह लूप भी तब तक एग्जीक्यूट होता है जब तक कंडीशन true होती है। यह लुप कम से कम एक बार अवश्य रन होता है। वही while लूप हो सकता है कि किसी कंडीशन में एक बार भी रहना हो।

    do स्टेटमेंट का प्रारूप में निम्नलिखित होता है:-

    Initialization section;
    do
        {
            Statement 1;
            Statement 2;
            ...........
            ...........
            Statement n;
    } while(test condition);


    do..while लूप की बॉडी एक बार अवश्य execute होती है चाहे condition true हो या false, जबकि while लूप में यदि कंडीशन false है तो लूप की body एक बार भी execute नहीं होगी।

    Example:-


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
           int i = 1;
           do
           {
              printf("\n W3 Coding Club");
              i++;
           while (i <= 6);
           getch();
        }

    Output:-

    W3 Coding Club
    W3 Coding Club
    W3 Coding Club
    W3 Coding Club
    W3 Coding Club
    W3 Coding Club

    Explain Example:-

    उपरोक्त प्रोग्राम में यदि i का मान प्रारंभ में 7 भी कर दिया जाए तो भी वह कम से कम एक बारW3 Coding Clubजरूर प्रिंट करेगा। ध्यान रखें कि यदि उपरोक्त प्रोग्राम में से i++हटा दिया जाए तो iका मान 1ही रहेगा और दी की कंडीशन कभी भी falseनहीं होगी। इससे यह प्रोग्राम कभी नहीं रुकेगा। अतः लुप का प्रयोग करते समय यह ध्यान रखें कि लूप को नियंत्रण करने वाले वेरिएबल की वैल्यू कभी ना कभी false जरूर हो।

    1 से 10 तक संख्या प्रिंट करने का प्रोग्राम Using do...while लूप

        
        #include <stdio.h>
        #include <conio.h>
        void main()
        {
           int a = 1;
           do
           {
              printf("\na = %d",a);
              a++;
           while (a<=10);
           getch();
        }

    Output:-

    a = 1
    a = 2
    a = 3
    a = 4
    a = 5
    a = 6
    a = 7
    a = 8
    a = 9
    a = 10

    Explain Example:-

    यह प्रोग्राम भी इससे पहले वाले प्रोग्राम पर आधारित है। कंडीशन के आधार पर while लुप क ब्लॉक 10 बार रन  होगा। इस ब्लॉक में लूप  को नियंत्रित करने वाले वेरिएबल  a ही मान  प्रिंट भी कराया गया है। 

    (3) for Loop:-

    for loop, एक Entry controlled लूप होता है। इस लूप  प्रोग्रामर द्वारा सबसे अधिक यूज में लिया जाता है। इसमें initialization,  test condition, और increment/ it recruitment एक ही जगह पर होता है। 

    Structure of for loop:-

    for(initialization; test condition; increment/ decrement)
    {
        Statement 1;
        Statement 2;
        ...........
        ...........
        Statement n;
    }

    Example:-

    for लूप की मदद से W3 Coding Club को 5 बार  प्रिंट करवाना:-


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
           int a;
           for(a=1; a<=5; a++){
              printf("\n W3 Coding Club");
           }
           getch();
        }

    Output:-

    W3 Coding Club
    W3 Coding Club
    W3 Coding Club
    W3 Coding Club
    W3 Coding Club

    👆👆 ऊपर दिए गए प्रोग्राम में a प्रारंभिक वैल्यू for लूप में ही दी गई है। साथ ही साथ a के मान में वृद्धि भी for  लूप में दी गई है। 

    for लूप में   initialization हम for लूप के बाहर भी कर सकते हैं। 

    Example:- 

    इस उदाहरण में initialization  का प्रयोग for loop में किए बिना 1 से 5 तक संख्या प्रिंट की गई है।


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
           int a;
           a=1;
           for(; a<=5; a++){
              printf(\na = %d",a);
           }
           getch();
        }

    Output:-

    a = 1
    a = 2
    a = 3
    a = 4
    a = 5

    इस example में वेरिएबल a को प्रारंभ for स्टेटमेंट के पहले ही दे दी गई है इसी कारण  से for लूप  में initialization section खाली रखा गया है। 

    इसी के साथ-साथ हम initialization तथा increment/ decrement का प्रयोग for लूप में किए बिना भी स्टेटमेंट को रन कर सकता है 

    Example:-

    इस example में initialization तथा increment/ decrement का प्रयोग for लूप में किए बिना 1 से 5 तक संख्या प्रिंट करवाई गई है।


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
           int a;
           a=1;
           for(; a<=5; ){
              printf("\na = %d",a);
              a++;
           }
           getch();
        }

    Output:-

    a = 1
    a = 2
    a = 3
    a = 4
    a = 5

    Explain Example:-

    इसे उदाहरण में भी वेरिएबल a को प्रारंभिक वैल्यू तथा इसमें increment अथवा Decrement for लूप में नहीं किया गया है यह दोनों ही कार्य क्रमशः for के पहले तथा for स्टेटमेंट के ब्लॉक में किए गए हैं।

    Example:-

    इस उदाहरण में एक से अधिक वेरिएबलों को initialize तथा increment/decrement करते हुए 1 से 5 तथा 5 से 1 तक संख्याएं प्रिंट की गई है।




        #include <stdio.h>
        #include <conio.h>
        void main()
        {
           int a, b;
           for (a = 1, b = 5; a <= 5; a++, b--)
           {
              printf("\na = %d", a);
              printf("\tb = %d", b);
           }
           getch();
        }

    Output:-

    a = 1      b = 5
    a = 2      b = 4
    a = 3      b = 3
    a = 4      b = 2
    a = 5      b = 1

    उपरोक्त उदाहरण में दो वेरिएबल(a तथा b)प्रयोग किए गए हैं। एक वेरिएबल (a) का मान प्रत्येक लूप में बढ़ रहा है तथा दूसरे(b) का मान प्रत्येक लूप में घट रहा है। 

    ध्यान दें कि initialization section में एक से अधिक वेरिएबल को initialize किया जा सकता है। इसी कारण दोनों वेरिएबल के मान में परिवर्तन भीforस्टेटमेंट में एक साथ किया गया है। यह भी ध्यान रखें कि 1 से अधिक variable को प्रयोग करने के लिए separator(सेपरेटर) के रूप मेंकॉमा(,)का प्रयोग किया जाता है। 

    Post a Comment

    0 Comments