C++ do…while लूप उदाहरण के साथ
डू-व्हाइल लूप क्या है?
Do-while लूप एक भाग को दोहराता है C++ प्रोग्राम को कई बार दोहराएँ। Do-while लूप में, टेस्ट एक्सप्रेशन लूप के निचले भाग में जोड़ा जाता है। लूप बॉडी टेस्ट एक्सप्रेशन से पहले आती है। इसलिए लूप बॉडी को एक बार निष्पादित करना चाहिए, भले ही टेस्ट एक्सप्रेशन पहले टेस्ट में गलत हो।
Do-while लूप का उपयोग कब करें?
जब पुनरावृत्तियों की संख्या निश्चित नहीं होती है, तो do-while लूप का उपयोग किया जाना चाहिए, तथा लूप को कम से कम एक बार निष्पादित किया जाना चाहिए। C++ संकलक शर्त का मूल्यांकन करने से पहले लूप बॉडी को पहले निष्पादित करता है। इसका मतलब है कि लूप को परिणाम वापस करना होगा। यह तब भी होता है जब परीक्षण की स्थिति पहले मूल्यांकन पर गलत आंकी जाती है। चूंकि लूप बॉडी पहले ही निष्पादित हो चुकी है, इसलिए उसे परिणाम वापस करना होगा।
वाक्य - विन्यास
का मूल वाक्यविन्यास C++ do while लूप इस प्रकार है:
do{ //code }while(condition);
शर्त परीक्षण अभिव्यक्ति है। लूप के निष्पादन के लिए यह सत्य होना चाहिए। { और } do while लूप के मुख्य भाग को चिह्नित करते हैं। यह शर्त से पहले आता है। इसलिए, इसे शर्त से पहले निष्पादित किया जाता है।
Do-while लूप कैसे काम करता है?
फ्लो चार्ट स्पष्टीकरण:
- do while लूप का प्रारंभ.
- do while लूप का मुख्य भाग.
- परीक्षण अभिव्यक्ति या स्थिति जिसका मूल्यांकन किया जाना है।
- यदि परीक्षण अभिव्यक्ति सत्य है, तो C++ कंपाइलर ने do while लूप के बॉडी को निष्पादित किया।
- यदि परीक्षण अभिव्यक्ति गलत है, तो C++ कम्पाइलर लूप बॉडी के बाद स्टेटमेंट्स को निष्पादित करता है।
- लूप बॉडी के बाद आने वाले कथन.
उदाहरण 1
#include <iostream> using namespace std; int main() { // Local variable int x = 1; do { cout << "X is: " << x << endl; x = x + 1; } while (x < 5); return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- हमारे कोड में iostream हेडर फ़ाइल शामिल करें। यह हमें कंसोल से पढ़ने और उसमें लिखने की अनुमति देगा।
- std नामस्थान को शामिल करना ताकि इसे कॉल किए बिना इसके क्लासों और फ़ंक्शनों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना जिसके अंदर प्रोग्राम का तर्क जोड़ा जाना चाहिए। { main() फ़ंक्शन के मुख्य भाग की शुरुआत को चिह्नित करता है।
- एक टिप्पणी. C++ संकलक इसे छोड़ देगा.
- एक पूर्णांक चर x घोषित करना तथा उसे 1 का मान प्रदान करना।
- do-while लूप बनाना। { लूप बॉडी की शुरुआत को दर्शाता है।
- कंसोल पर अन्य टेक्स्ट के साथ चर x का मान प्रिंट करने के लिए। endl एक है C++ कीवर्ड का अर्थ अंतिम पंक्ति है।
- प्रत्येक पुनरावृत्ति के बाद x का मान 1 से बढ़ाना।
- लूप बॉडी का अंत। लूप बॉडी के अंत में टेस्ट एक्सप्रेशन जोड़ा गया है। यह जांचता है कि x का मान 5 से कम है या नहीं।
- यदि प्रोग्राम ठीक से चलता है तो main() फ़ंक्शन को एक मान लौटाना चाहिए।
- main() फ़ंक्शन के मुख्य भाग का अंत.
उदाहरण 2
#include <iostream> using namespace std; int main() { int num, sum = 0; do { cout << "Enter a number: "; cin >> num; sum += num; } while (num != 0); cout << "Sum is " << sum; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- हमारे कोड में iostream हेडर फ़ाइल शामिल करें। यह हमें कंसोल से पढ़ने और उसमें लिखने की अनुमति देगा।
- std नामस्थान को शामिल करना ताकि इसे कॉल किए बिना इसके क्लासों और फ़ंक्शनों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना जिसके अंदर प्रोग्राम का तर्क जोड़ा जाना चाहिए।
- { main() फ़ंक्शन के मुख्य भाग के आरंभ को चिह्नित करता है।
- दो पूर्णांक चर, num, और sum घोषित करना। चर sum को 0 पर आरंभीकृत किया गया है।
- do-while लूप बनाना। { लूप बॉडी की शुरुआत को दर्शाता है।
- कंसोल पर “एक नंबर दर्ज करें:” पाठ प्रिंट करना।
- कंसोल से उपयोगकर्ता इनपुट पढ़ना और वेरिएबल num में मान संग्रहीत करना। cin (कंसोल इनपुट) एक फ़ंक्शन है जो उपयोगकर्ता इनपुट पढ़ता है।
- num के मान को sum के मान में जोड़ना और परिणाम को variable sum में संग्रहीत करना।
- } लूप बॉडी के अंत को चिह्नित करता है। परीक्षण अभिव्यक्ति को लूप बॉडी के अंत में जोड़ा गया है। यह परीक्षण करता है कि उपयोगकर्ता द्वारा दर्ज किया गया मान 0 नहीं है या नहीं। != ऑपरेटर के बराबर नहीं है। यदि उपयोगकर्ता 0 दर्ज करता है, तो लूप समाप्त हो जाना चाहिए।
- कंसोल पर अन्य पाठ के साथ चर योग का मान मुद्रित करना।
- यदि प्रोग्राम ठीक से चलता है तो main() फ़ंक्शन को एक मान लौटाना चाहिए।
- main() फ़ंक्शन के मुख्य भाग का अंत.
नेस्टेड डू व्हाइल लूप
In C++, हमारे लिए एक do-while लूप को दूसरे do-whole लूप के अंदर बनाना संभव है। इसका परिणाम एक नेस्टेड do-while लूप होता है।
वाक्य - विन्यास
do{ statement(s) do{ statement(s) }while(condition); statement(s) }while(condition);
पहला do कथन बाहरी do-while लूप के do भाग को दर्शाता है।
दूसरा do कथन आंतरिक do-while लूप के do भाग को दर्शाता है।
पहला while कथन आंतरिक लूप के लिए परीक्षण स्थिति को दर्शाता है।
दूसरा while कथन बाहरी लूप के लिए परीक्षण स्थिति को दर्शाता है।
नेस्टेड डू व्हाइल लूप कैसे काम करता है
नेस्टेड do while लूप निम्न प्रकार काम करता है:
चरण १: आरंभीकरण पहले और एक बार निष्पादित किया जाता है।
चरण १: कथन (do) एक बार निष्पादित किया जाता है।
चरण १: परीक्षण अभिव्यक्ति प्रवाह नियंत्रण द्वारा मूल्यांकन है।
चरण १: यदि सत्य है, तो आंतरिक लूप निष्पादित होता है।
चरण १: अद्यतन विवरण(विवरण) अद्यतन किए गए हैं।
चरण १: प्रक्रिया तब तक बार-बार चलती है जब तक परीक्षण अभिव्यक्ति गलत नहीं हो जाती।
चरण १: जब परीक्षण अभिव्यक्ति गलत हो जाती है, तो आंतरिक लूप बाहर निकल जाता है और नियंत्रण बाहरी लूप पर चला जाता है।
चरण १: परीक्षण स्थिति का पुनः मूल्यांकन किया जाता है।
चरण १: यदि सत्य है, तो कथन को असत्य लौटाने के लिए निष्पादित किया जाता है।
चरण १: लूप का निष्पादन रुक जाता है और नियंत्रण लूप के बाद कथनों पर चला जाता है।
उदाहरण
#include <iostream> using namespace std; int main() { int a = 1; do { int b = 1; do { cout << a << "\n"; b++; } while (b <= 3); a++; } while (a <= 3); }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- हमारे कोड में iostream हेडर फ़ाइल शामिल करें। यह हमें कंसोल से पढ़ने और उसमें लिखने की अनुमति देगा।
- std नामस्थान को शामिल करना ताकि इसे कॉल किए बिना इसके क्लासों और फ़ंक्शनों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करना जिसके अंदर प्रोग्राम का तर्क जोड़ा जाना चाहिए। { main() फ़ंक्शन के मुख्य भाग की शुरुआत को चिह्नित करता है।
- एक पूर्णांक चर a घोषित करना तथा उसे 1 का मान निर्दिष्ट करना।
- बाहरी do-while लूप बनाना। { बाहरी लूप बॉडी की शुरुआत को दर्शाता है।
- एक पूर्णांक चर b घोषित करना तथा उसे 1 का मान निर्दिष्ट करना।
- आंतरिक do-while लूप बनाना। { आंतरिक लूप बॉडी की शुरुआत को चिह्नित करता है।
- कंसोल पर वेरिएबल a का मान प्रिंट करने के लिए। “\n” एक नया लाइन कैरेक्टर है जो माउस कर्सर को अगली लाइन पर ले जाता है।
- प्रत्येक पुनरावृत्ति के बाद b का मान 1 से बढ़ाना।
- आंतरिक लूप बॉडी का अंत। लूप बॉडी के अंत में टेस्ट एक्सप्रेशन जोड़ा गया है। यह परीक्षण करता है कि b का मान 5 से कम है या उसके बराबर है।
- प्रत्येक पुनरावृत्ति के बाद a का मान 1 से बढ़ाना।
- बाहरी लूप बॉडी का अंत। लूप बॉडी के अंत में टेस्ट एक्सप्रेशन जोड़ा गया है। यह परीक्षण करता है कि a का मान 3 से कम है या उसके बराबर है।
- main() फ़ंक्शन के मुख्य भाग का अंत.
सारांश
- Do-while लूप कोड के एक भाग को कई बार चलाता है।
- इसका प्रयोग तब किया जाना चाहिए जब पुनरावृत्तियों की संख्या निश्चित न हो।
- Do-while लूप में, लूप बॉडी टेस्ट एक्सप्रेशन से पहले आती है।
- लूप बॉडी कम से कम एक बार निष्पादित होती है, भले ही परीक्षण अभिव्यक्ति गलत हो जाए।
- इस लूप का प्रयोग तब किया जाना चाहिए जब पुनरावृत्तियों की संख्या निश्चित न हो।
- Do while लूप को कितनी भी बार चलाया जा सकता है, बशर्ते शर्त सत्य हो।
- प्रत्येक पुनरावृत्ति के बाद एक बार स्थिति का मूल्यांकन किया जाता है।
- स्थिति के मूल्यांकन का परिणाम यह निर्धारित करता है कि क्या कार्रवाई की जानी चाहिए।
- यदि शर्त सत्य है, तो लूप ने बॉडी को निष्पादित किया।
- जैसे ही स्थिति का मूल्यांकन गलत होता है, लूप का निष्पादन तुरंत रुक जाता है।
- चूंकि do while लूप बॉडी पहले ही निष्पादित हो चुकी है, इसलिए उसे परिणाम अवश्य लौटाना चाहिए।