while Loop in C Language with simple examples

while Loop in C Language: 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 निम्नानुसार होता है:

	Variable Declaration;
	Value Initialization;

	while(Condition )
	{
		Statement Block;
		Step Size;
	}
	
	Statement 1;

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 दोनों का भाग पूरा-पूरा जाता है।

अत: अब हम हमारा पूरा प्रोग्राम कोड लिख सकते हैं, जो कि निम्‍नानुसार है:

 

Program Declaration: इस प्रोग्राम में int प्रकार का एक Variable x Loop चलाने के लिए लिया गया है। इस Variable के Declaration के बाद clrscr() Function द्वारा Output Screen को साफ किया जाता है। फिर 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 का भाग तो पूरा-पूरा जाता है लेकिन 3 का भाग नहीं जाता इसलिए Condition पुन: असत्‍य हो जाती है और printf() Function Execute नहीं होता है।

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

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

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