Header Ads

ad728
  • New Updates

    While Loop


    While Loop          

    For Loop की तरह यह ही किसी Statement के दोहराने का काम करता है , लेकिन फिर भी यह for Loop से काफी अलग है | इस Loop में “C” के Keyword While का प्रयोग किया जाता है | While Loop में While कोष्टक में केवल Condition दी जाती है |

    Variable का प्रारम्भिक मान व Step Size While के कोष्टक का हिस्सा नहीं होते हैं , बल्कि Variable का प्रारम्भिक मान While Loop को शुरू करने के पहले ही Declare Initialize कर दिया जाता है और Loop की Step Size While Condition के Statement Block का हिस्सा होता है | While Loop का Syntax निम्नानुसार  होता है |

    While Statement के कोष्टक के बाद कभी भी , (Semi Colon) का प्रयोग नहीं किया जाता है |  जब While के बाद केवल एक ही Statement का Execution करना होता है , तब हमें मंझले कोष्टक का प्रयोग करने की जरुरत नहीं रहती है | फिर भी यदि मंझले कोष्टक का प्रयोग कर लिया जाए तो कोई फर्क नहीं पड़ता है |

    सर्वप्रथम हमें Loop चलने वाले Variable को प्रारम्भिक मान देना होता है | यह काम While Loop के बाहर ही कर लिया जाता है | जब Program Control , While Loop में प्रवेश करता है तो Program Control , Condition check करता है |

    यदि Condition सत्य होती है तो Program Control While  Loop के Statement Block में प्रवेश करता है और Statement Block का Execution करता है | Execution के बाद Statement Size तय करता है , यानी Loop के Variable का मान जरुरत के अनुसार Increment या Decrement करता है |

    यह क्रम तब तक चलता रहता है जब तक कि While Condition असत्य नहीं हो जाती है | यदि Condition सत्य नहीं होती है तो Program Control While Loop के Statement Block में प्रवेश नहीं करता , बल्कि सीधे ही Statement 1 पर चला जाता है |

    Example

    While Loop का प्रयोग करते हुए एक ऐसा प्रोग्राम बनाए जिसमें 1 से 100 के बीच वह संख्या Print हो जिसमें 2 3 का पूरा – पूरा भाग जाता है |

    Program Definition

    किसी भी Loop को चलाने  के लिए Loop की आवश्यक तीनो बातें हमें पता होनी चाहिए | पहली बात ये कि Loop का प्रारंभ कहां से होगा , दूसरा ये कि Loop का अंत कहाँ होना है और तीसरा ये कि Loop को किस क्रम में Increase या Decrease करना है | किसी भी Loop में किसी Variable द्वारा ये तीनों तय की जाती है |

    इस प्रोग्राम में भी एक Variable x लिया ये तीनों मान प्राप्त किये जा सकें | इस प्रोग्राम में हमें 1 से 100 के बीच की संख्याओं पर प्रक्रिया करनी है इसलिए Loop के Variable का प्रारम्भिक मान 1 व  अंतिम मान 100  Define किया गया है और Step Size को एक के क्रम में ही बढाया गया है ताकि ये पता लग सके कि कौनसा अंक ऐसा है , जिसमें 2 3 का भाग पूरा – पूरा जाता है | इस प्रोग्राम में हमें ये पता करना है कि किस संख्या में 2 3 का भाग पूरा – पूरा जाता है | यह काम हम if Condition Statement द्वारा ही कर सकते हैं |

    क्योंकि हर Iteration के बाद Loop चलाने वाले Variable का मान बढ़ जाया करेगा इसलिए हर अंक में 2 3 का भाग देना होगा और यदि संख्या में 2 3 का भाग पूरा – पूरा चला जाता है तो शेषफल शून्य प्राप्त होगा | जिस संख्या में 2 3 का भाग पूरा – पूरा चला जाएगा वह संख्या Output में Print हो जाएगी | जो संख्याएं If Condition को संतुष्ट नहीं करेगी |

    यानि जिस संख्या में 2 का भाग तो पूरा – पूरा चला जाए लेकिन 3 का भाग न जाए या फिर जिस संख्या में 3 का भाग पूरा – पूरा चला जाए लेकिन 2 का ना जाए तो Condition असत्य हो जाएगी और वह संख्या Output में Print नहीं होगी |

    if Condition के रूप में ये शर्त देनी होगी कि Output में वही संख्या Print हो जिसमें 2 3 का पूरा – पूरा भाग जाता है | इस शर्त को यदि हम ध्यान से समझते तो ये कह सकते है कि इस एक शर्त में दो शर्त है | पहली ये कि किसी संख्या में 2 का भाग पूरा – पूरा जाना चाहिये और दूसरी  ये कि उसी संख्या में 3 का भाग भी पूरा – पूरा जाना चाहिये तभी वह Condition पुर्ण रूप से सत्य होगी | इस शर्त को यदि हम दूसरे शब्दों में कहें तो कह सकते हैं कि किसी संख्या में यदि 2 का भाग देने पर शेष फल शुन्य प्राप्त होता है तो Condition सत्य होती है |

    यदि इसे गणितीय रूप में लिखें तो x%2==0 लिख सकते हैं | साथ ही उसी संख्या में 3 का भाग भी पूरा – पूरा जाना चाहिये यानी उसी संख्या में 3 को भाग देने पर भी शेषफल शुन्य आना चाहिये इसे भी गणितीय रूप में x%3==0 लिख सकते हैं | इस प्रकार दोनों Condition सत्य होने पर ही Statement Block का Execution होना चाहिये |

    अतः इन दोनों Condition को Logical Operator AND (&&) द्वारा जोड़ कर if कोष्टक में लिखना होगा | इस प्रकार इस Loop की वास्तविक Condition x%2==0&& x%3==0 होगी | इस प्रकार हमें इस प्रोग्राम की सभी आधारभूत चीजें प्राप्त हो जाती है जो निम्नानुसार है

    Loop के Variable का प्रारम्भिक मान जिससे Loop का Iteration शुरू होगा यानी 1

    • Loop के Variable का अंतिम मान जिसके बाद Loop का Iteration रुक जाएगा , यानी 100

    • Loop के Variable की Step Size जिस क्रम में Loop के Variable का Increment होगा |

    • एक if Condition जिसमें ये check होगा कि 1 से 100 के बीच कौनसी संख्याएं है जिनमें 2 3 दोनों का भाग पूरा – पूरा जाता है |

     

      
      /* while Loop Example */
    
    #include<stdio.h>
    main()
    {
           int x;
    	 
           x=1;
    	 
           while(x<=100)
           {
                if(x%2==0&&x%3==0)
                printf("%d\n",x);
                x++;
           }
      getch();
    }
      

    Program Declaration

    इस प्रोग्राम में int प्रकार का एक Variable x Loop चलाने के लिए लिया गया है | फिर x को प्रारम्भिक मान 1 Initialize किया गया है , क्योंकि while Loop में Loop चलाने वाले Variable को While Loop के बाहर ही प्रारम्भिक मान दिया जाता है |

    अब Program Control While Loop को check करता है | यहां ये Check होता है कि x का मान 100 से कम या बराबर है या नहीं | यहां Condition सत्य होती है , क्योंकि x का प्रारम्भिक मान 1 है , जो कि 100 से कम है | इसलिए Program Control While Loop के Statement Block में प्रवेश करता है | Statement Block में प्रवेश करते ही Program Control को एक if Statement मिलती है जो यह check करने के लिए है कि x के मान में 2 3 भाग पूरा – पूरा जाता है या नहीं |

    यहां x का मान 1 है , इसलिए if Condition असत्य हो जाती है क्योंकि 1 में ना तो 2 का बाग पूरा – पूरा जाता है ना ही 3 का | if Condition के असत्य होने से Printf() Function का Execution नहीं होता और Program Control सीधे ही x का मान Increment करने वाले Statement पर पहुंच जाता है |

    ध्यान दें कि यहां Printf() Function का Execution क्यों नहीं हुआ | यहां Printf() Function का Execution इसलिए नहीं हुआ क्योंकि if Condition असत्य हो गई है | आप सोचेंगे कि यदि if Condition असत्य होने से printf() Function का Execution नहीं हुआ तो फिर x के increment Statement का Execution कैसे हुआ ?

    ऐसा इसलिए हुआ क्योंकि जब हमें किसी Control Statement के बाद केवल एक ही Statement का Execution करना होता है तब उसके Statement को Block में लिखने की जरुरत नहीं होती है | ( यदि उस Statement को Block में लिख दिया जाए तो भी कोई फर्क नहीं पड़ता है | ) क्योंकि Condition सत्य होने पर Program Control सीधे ही उसके आगे लिखे एक Statement का Execution कर देता है | यदि Statement एक से अधिक हो और हम Block का प्रयोग ना करें तो Program Control , Control Statement की Condition सत्य होने पर Control Statement के अगले एक Statement का Execution कर देता है |

    शेष Statements को छोड़ देता है , लेकिन यदि Condition असत्य हो जाए तो Control Statement के बाद के एक Statement को छोड़ कर शेष Statements  का Execution कर देता है | इसलिए Control Statement के बाद यदि एक से अधिक Statements का Execution करना हो तो हमें Block का प्रयोग करना जरुरी हो जाता है | 

    इस प्रोग्राम में Control Statement if के बाद केवल एक ही Statement लिखा गया है | यदि Condition सत्य होती है तो ये printf() Function Execute हो जाता है और यदि Condition असत्य हो जाती है तो ये printf() Function Execute नहीं होता |

    अब प्रोग्राम Control को x++ Statement मिलती है | Program Control x का मान बढा कर अब दो कर देता है | वापस while Condition में x का मान check होता है कि x का मान 100 से कम या बराबर है या नहीं | x=2 होने से वापस condition सत्य हो जाती है और Program Control वापस Loop के Statement Block में पहुंचता है | यहां वापस if Condition check होती है | यहां x = 2 होने से x में 2 का भाग तो पूरा – पूरा जाता इसलिए Condition पुनः असत्य हो जाती है और printf() Function Execute नहीं होता है |

    इस प्रकार यही क्रम चलता रहता है | जब x का मान Increment हो कर 6 होता है तब if Condition सत्य हो जाती है क्योंकि तब x के मान  में 2 3 दोनों का भाग पूरा – पूरा जाता है , तब printf() Function Execute होता है और Output में 6 print हो जाता है |

    यह क्रम तब तक चलता रहता है जब तक कि x का मान 100 से अधिक नहीं हो जाता | जैसे ही x का मान 101 होता है , while Loop की Condition असत्य हो जाती है और Program Control सीधे ही getch() Function पर पहुँच कर परिणाम को Output में Print कर देता है |

     

    No comments

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728