C भाषा में लूप्स Loops in C

भाषा में लूप्स 
Loops in C

C भाषा में, loops उपयोग करके एक से अधिक बार एक ही ब्लॉक को एक साथ चलाया जाता है। ये एक विशेष प्रकार के control structure होते हैं, जो एक से अधिक बार दोहराए जाने वाले statements को चलाने की अनुमति देते हैं। 

ऐसी स्थिति हो सकती हैजब आपको कोड के एक ब्लॉक को कई बार निष्पादित (execute) करने की आवश्यकता हो। सामान्य तौर परकथनों को क्रमिक रूप से निष्पादित किया जाता है: किसी फ़ंक्शन में पहला कथन पहले निष्पादित किया जाता हैउसके बाद दूसराऔर इसी तरह। 

प्रोग्रामिंग भाषाएं विभिन्न नियंत्रण संरचनाएं प्रदान करती हैं जो अधिक जटिल निष्पादन पथों की अनुमति देती हैं। एक लूप स्टेटमेंट हमें एक स्टेटमेंट या स्टेटमेंट के समूह को कई बार निष्पादित करने की अनुमति देता है

 
अधिकांश प्रोग्रामिंग भाषाओं में लूप स्टेटमेंट का सामान्य रूप निम्नलिखित है
 


C भाषा में, निम्नलिखित तीन loops उपलब्ध होते हैं:

for loop - for loop सबसे अधिक उपयोग में आने वाला loop है। इसका उपयोग एक ब्लॉक को एक से अधिक बार चलाने के लिए किया जाता है।

while loop - while loop भी एक ब्लॉक को एक से अधिक बार चलाने के लिए किया जाता हैलेकिन यह तब तक चलता है जब तक शर्त सत्य होती है।

do-while loop - do-while loop भी एक ब्लॉक को एक से अधिक बार चलाने के लिए किया जाता हैलेकिन यह ब्लॉक कम से कम एक बार तो चलता ही हैउसके बाद वे शर्त की जाँच करते हैं।

 
for loop
 
C भाषा में, for loop सबसे अधिक उपयोग में आने वाला loop है। for loop उपयोग करके हम एक ब्लॉक को एक से अधिक बार चलाने के लिए कोड लिख सकते हैं। जब निश्चित संख्या में एक ब्लॉक कोड चलाना हो तो ये अधिक उपयोगी है।


for loop एक control structure है जो निम्नलिखित संरचना का पालन करता है:


for (initialization; condition; increment/decrement) {
    // code to be executed repeatedly
}

 
इस संरचना में, 
  • initialization एक expression है जो loop variable को initialize करता है। यह expression सिर्फ एक बार execute होता है।
  • condition एक expression है जो loop को continue या break करने के लिए check करता है। यह expression loop variable का value compare करता है जो कि न्यूनतम एक बार होता है। यदि condition सत्य होती है, तो loop को continue किया जाता है। अन्यथा loop को ब्रेक किया जाता है।
  • increment/decrement एक expression होता है जो loop variable को बढ़ाता या घटाता है। यह expression हर iteration के बाद execute होता है।

यहाँ for लूप में नियंत्रण का प्रवाह है:
init चरण को पहले निष्पादित किया जाता है, और केवल एक बार। यह चरण आपको किसी भी लूप नियंत्रण चर को घोषित करने और प्रारंभ करने की अनुमति देता है। जब तक अर्धविराम प्रकट होता है, तब तक आपको यहां कोई कथन देने की आवश्यकता नहीं है।



उदाहरण के लिए, निम्नलिखित कोड द्वारा for loop का उपयोग किया जा सकता है:


#include <stdio.h>

int main() {
int i;

    for(i=0; i<5; i++) {
        printf("%d\n", i);
    }

    return 0;
}

  
इस कोड में, loop variable i को initialize किया जाता है 0 से। यदि i की value 5 से कम होती है, तो loop के अंदर printf statement execute होता है जो i का value print करता है। फिर i को बढ़ाया जाता है। इस प्रक्रिया को 5 बार दोहराया जाता है

अतः program का आउटपुट निन्म होगा

1
2
3
4
5
 

do...while loop

C भाषा में, do...while loop एक ऐसा loop है जो while loop की तुलना में कुछ अलग तरीके से काम करता है। do...while loop को post-test loop के रूप में भी जाना जाता है क्योंकि इसमें condition को loop के पहले नहीं, बल्कि loop के बाद evaluate किया जाता है।




do...while loop का फॉर्मेट निम्नलिखित होता है:

do {

   // code to be executed repeatedly

} while (condition);


इस संरचना में, do keyword के बाद एक ब्लॉक शामिल होता है जो कि loop के body के रूप में काम करता है। इस ब्लॉक को कम से कम एक बार execute किया जाता है, फिर condition को evaluate किया जाता है। अगर condition सत्य होती है, तो loop को फिर से execute किया जाता है। यदि condition गलत होती है, तो loop से बाहर निकल जाते हैं।


उदाहरण के लिए, निम्नलिखित कोड द्वारा do...while loop का उपयोग किया जा सकता है:


#include <stdio.h>

int main() {
    int i = 0;

    do {
        printf("%d\n", i);
        i++;
    } while(i < 5);

    return 0;
}

इस कोड में, printf statement execute होता है एक बार शुरूआत में, फिर i को 1 बढ़ाया जाता है। इस प्रक्रिया को 5 बार दोहराया जाता है, क्योंकि condition i < 5 सत्य होता है 0 से शुरू होने के कारण। जब condition गलत होती है, तो loop से बाहर निकलते हैं।


while loop

C भाषा में, while loop एक control flow statement है जो एक block of code को execute करता है जब तक दिया गया condition सत्य होता है।




while loop का फॉर्मेट निम्नलिखित होता है:

while (condition) {
    // code to be executed repeatedly
}

इस संरचना में, while keyword के बाद दिया गया condition evaluate किया जाता है। अगर condition सत्य होता है, तो loop के ब्लॉक में दिया गया code execute होता है। अगर condition गलत होता है, तो loop से बाहर निकल जाते हैं।

उदाहरण के लिए, निम्नलिखित कोड द्वारा while loop का उपयोग किया जा सकता है:

#include <stdio.h>

int main() {
    int i = 0;
    while(i < 5) {
        printf("%d\n", i);
        i++;
        }
    return 0;
}

इस कोड में, printf statement execute होता है जब तक i की value 5 से कम होती है। जब i 5 से बढ़ जाता है, तो condition i < 5 गलत हो जाता है और loop से बाहर निकलते हैं।

while loop और do while loop में अंतर

C भाषा में while loop और do-while loop दोनों loops होते हैं, जो code को repeat करने के लिए use किये जाते हैं, जब तक दिया गया condition true होता है।

while loop उस condition को evaluate करता है, जो loop के entry point से पहले होती है। अत: यदि condition सही नहीं होती है, तो loop का body execute नहीं होता है।

दूसरी तरफ, do-while loop उस condition को evaluate करता है, जो loop के body के आखिरी line के बाद होती है। यदि condition सही नहीं होती है, तो भी loop का body कम से कम एक बार execute होता है।

इस तरह, do-while loop अधिकतर स्थितियों में while loop से अधिक उपयोगी होता है। क्योंकि यह उन स्थितियों में भी code को execute करता है, जब condition false होती है, जो कि कई ऐप्लिकेशन के लिए बहुत जरुरी होता है ।

उदाहरण के लिए, निम्नलिखित कोड while और do-while लूप का उपयोग करते हुए एक अंतर दर्शाता है:

#include <stdio.h>

int main() {
    int i = 5;
    // while loop
    printf("While loop:\n");
    while (i < 5) {
        printf("i = %d\n", i);
        i++;
        }
    // do-while loop
    printf("Do-While loop:\n");
    do {
        printf("i = %d\n", i);
        i++;
    } while (i < 5);

    return 0;
}

इस कोड में, while loop का body execute नहीं होता है, क्योंकि condition पहले से ही false होता है। दूसरी ओर, do-while loop का body कम से कम एक बार execute होता है, क्योंकि condition loop के body के बाद evaluate किया जाता है और एक बार भी false होने पर भी loop का body execute होता है। इसलिए, do-while loop का output निम्न होगा:

While loop:
Do-While loop:
i = 5

जैसा कि देखा जा सकता है, while loop का body execute नहीं होता है, जबकि do-while loop का body कम से कम एक बार execute होता है, जबकि condition false होता है।

for loop का दूसरे loop में अंतर

C भाषा में for loop एक iteration statement होता है जो दिये गए expression को बार-बार evaluate करता है जब तक दिये गए condition true होता है। for loop की संरचना एक initialization statement, एक condition expression, और एक iteration statement से मिलती है।


for loop के लिए सिंटेक्स निम्न होती है:

for (initialization statement; condition expression; iteration statement) {
    // code to be executed
}

दूसरी तरफ, while और do-while loop में, शुरुआती statement, condition expression और iteration statement अलग-अलग रूप से लिखने की जरूरत होती है।

while loop के लिए सिंटेक्स निम्न होती है:

while (condition) {
    // code to be executed
    // iteration statement
}

do-while loop के लिए सिंटेक्स निम्न होती है:

do {
    // code to be executed
    // iteration statement
} while (condition);

इस तरह, for loop के साथ संरचना का उपयोग करना बहुत सरल होता है, जबकि while और do-while loop के लिए संरचना को सही ढंग से लिखना थोड़ा मुश्किल हो सकता है। साथ ही, for loop में iteration statement को सीधे शर्त के साथ जोड़ा जा सकता है, जिससे code को संक्षिप्त रूप से लिखा जा सकता है।

तीनो loop में अंतर का उदाहरण 

C भाषा में तीन प्रकार के loops होते हैं: for loop, while loop और do-while loop। ये सभी loops एक ब्लॉक के statements को बार-बार execute करने के लिए इस्तेमाल किए जाते हैं।

फोर लूप (For Loop):

for loop एक iteration statement होता है जो दिए गए expression को बार-बार evaluate करता है जब तक दिये गए condition true होता है। for loop का संरचना एक initialization statement, एक condition expression, और एक iteration statement से मिलती है। 

निम्नलिखित कोड में, for loop का उपयोग 1 से 10 तक सभी संख्याओं को print करने के लिए किया गया है।

for (int i = 1; i <= 10; i++) {
    printf("%d ", i);
}

वाइल लूप (While Loop):

while loop दिये गए condition को evaluate करता है जब तक वह true होता है, और उसके बाद while loop का body execute होता है। 

निम्नलिखित कोड में, while loop का उपयोग 1 से 10 तक सभी संख्याओं को print करने के लिए किया गया है।

int i = 1;
while (i <= 10) {
    printf("%d ", i);
    i++;
}

डू व्हाइल लूप (Do-While Loop):

do while loop पहले एक बार body execute होता है। उसके बाद दी गयी condition को evaluate करता है जब तक वह true होता है, तो उसके बाद फिर do while loop का body execute होता है।

निम्नलिखित कोड में, do-while loop का उपयोग 1 से 10 तक सभी संख्याओं को print करने के लिए किया गया है।

int i = 1;
do {
    printf("%d ", i);
    i++;
    } while (i <= 10);

इन उदाहरणों में, 
  • for loop में initialization, condition और iteration सभी loop statement के भीतर होते हैं। 
  • while loop में condition expression होता है जो loop के body को execute करने से पहले evaluate होता है। 
  • do-while loop में condition expression लूप के body को execute करने के बाद evaluate होता है।

Nested loop

नेस्टेड लूप का अर्थ होता है एक लूप के भीतर दूसरे लूप का उपयोग करना। जब हम एक लूप के भीतर एक और लूप बनाते हैं, तो यह नेस्टेड लूप बन जाता है। नेस्टेड लूप का उपयोग दो चरणों के लिए किया जाता है: एक समूह में अनुक्रमणिका के संभवतः सभी तत्वों के लिए जब आप एक बार में एक तत्व पर काम करना चाहते हैं या एक बार में दो से अधिक तत्वों को एक साथ एक समूह में अपडेट करना चाहते हैं।

C भाषा में तीन तरह के Nested Loop होते हैं:

Nested For Loop

Syntax:

for (init; condition; increment/decrement) {
    for (init; condition; increment/decrement) {
    // Inner loop statements
    }
// Outer loop statements
}

Nested While Loop

Syntax:

while (condition) {
    while (condition) {
        // Inner loop statements
    }
    // Outer loop statements
}

Nested do-while Loop

Syntax:

do {
    do {
        // Inner loop statements
    } while (condition);
    // Outer loop statements
} while (condition);

ऊपर दिए गए सिंटैक्स के अनुसार, हम पहले बाहरी लूप का शुरुआत, शर्त और इंक्रीमेंट/डेक्रीमेंट करते हैं। उसके बाद हम अंदर के लूप को शुरुआत, शर्त और इंक्रीमेंट/डेक्रीमेंट करते हैं। आखिर में, हम अंदर के लूप और बाहरी लूप के लिए अलग-अलग स्टेटमेंट्स लिखते हैं।

अंदरी लूप के बीच में, हम अधिक से अधिक नेस्टेड लूप भी लिख सकते हैं। यहीं, हमें नेस्टेड लूप का उपयोग बड़े डेटा सेट्स को लेकर तैयारी करने जैसे दो विभिन्न सूचियों से एक नयी सूची बनाने के लिए करना होता है।

यहां एक उदाहरण है जो दो नेस्टेड लूप का उपयोग करता है:

#include <stdio.h>

int main() {
    int i, j;
    for (i = 1; i <= 5; i++) {
        for (j = 1; j <= i; j++) {
            printf("%d ", j);
        }
        printf("\n");
    }
    return 0;
}

इस उदाहरण में, हम दो नेस्टेड लूप का उपयोग कर रहे हैं। पहले लूप में i की मान 1 से 5 तक बढ़ते हुए चलता है। दूसरे लूप में j की मान 1 से i तक बढ़ते हुए चलता है। इसके बाद, हम printf() का उपयोग करते हुए प्रत्येक स्तंभ में j के मान को प्रिंट करते हैं। एक स्तंभ के अंत में, हम एक नई पंक्ति प्रिंट करते है।