जैसा कि loop के नाम से पता चलता है – do – पहले करो while – जबकि condition
do-while loop in C++
do -while loop अन्य दो loop से अलग होता है, इसमें पहले body of loop execute होता है फिर condition चेक होती है।
एक do -while हमेशा एक बार जरूर execute होता है चाहे condition false हो या true हो जबकि अन्य दो loop में condition के true होने पर ही body of loop execute होता है।
इसका syntax नीचे दिया गया है।
initialization;
do {
body of loop;
updation;
}
while (expression);
do-while loop flow diagram in C++
एक do -while loop का flow diagram नीचे दिया गया है –
do -while loop के इस flow -diagram को अन्य दो loops के flow diagram से compare करके देखें।
do-while loop Program in C++
Program में, यह शर्त दी गई है कि loop-body केवल तभी execute करे जब user द्वारा दी गई value 5 से कम हो।
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int num;
cout<<"Enter number less than 5:";
cin>>num;
int x=num; //5
do{
cout<<x<<".statement executed\n"; // body of loop
x++;
}
while(x<5);
getch();
}
OUTPUT
यहाँ इस program को दो बार execute किया गया है।
1nd execution
Enter number: 1
1.statement executed
2.statement executed
3.statement executed
4.statement executed
क्योंकि condition true होती है (1 <5) इसलिए यह 4 बार execute होगा जैसा कि हम ऊपर देख सकते हैं, program निम्नानुसार execute करेगा,
body of loop | value increased by 1 , x++; | Expression/condition |
---|---|---|
1.statement executed | 2 | 2 < 5 (True) |
2.statement executed | 3 | 3 < 5 (True) |
3.statement executed | 4 | 4 < 5 (True) |
4.statement executed | 5 | 5 < 5 (False) |
Note: इस table को आप do -while loop से compare कर सकते हैं। जिससे आपको इसे समझने में आसानी होगी।
लेकिन अब 2nd execution में , इस बार num = 6 है। तब,
6.statement executed
इस बार condition false हो रही थी (6 <5) लेकिन फिर भी body of loop execute हुआ , यह निम्नानुसार execute करेगा,
body of loop | increment in initialization value x = 6 | Expression/condition |
6.statement executed | 6 | 6 < 5 (False) |
ऐसा क्यों हुआ ?
जैसे कि ऊपर पहले ही बताया गया है do -while loop में, पहले body of loop execute होता है फिर condition check होती है।
do -while loop निम्नानुसार काम करेगा,
उपरोक्त Program की पुनरावृत्ति निम्नानुसार होगी,
Difference between while and do-while loop in C++
while loop सबसे पहले condition check की जाती है, फिर body of loop execute होता है , फिर initialize value में up-dation होता है, जबकि, do -while loop में, body पहले एक बार जरूर execute होता है चाहे condition false ही क्यों ना हो रही हो। फिर अंतिम में initialize value update होती है।
while loop में
initialization – condition – body of loop – increment
do-while loop में,
initialization – body of loop – increment – condition
do-while loop with switch statement in C++
जैसा कि हम जानते हैं कि do -while loop में पहले execution होता है , उसके बाद condition की जाँच होती है । एक menu बनाना, do -while loop का एक अच्छा उदाहरण हो सकता है।
नीचे दिए गए program में, first do it – जिसका अर्थ है कि पहले menu प्रदर्शित करें फिर condition की जांच करें यदि condition true हो तो execution करें (यहाँ पर condition के true से मतलब menu -option select करने से है)
हमने शर्त रखी है कि यदि user द्वारा दिया गया input विकल्पों के serial number [1,2,3,0] से मेल खाता है, तो केवल उस विकल्प को execute किया जाए।
#include<iostream.h>
#include<conio.h>
#include<stdlib.h> //exit()
void main()
{
int select;
int num1,num2,result;
do {
clrscr();
cout<<"1.Sum \n";
cout<<"2.Subtraction\n";
cout<<"3.Multiply\n";
cout<<"0.Exit";
cout<<"\nEnter Your Choice: ";
cin>>select;
switch(select)
{
case 1:
cout<<"\nEnter Two Number: ";
cin>>num1>>num2;
result = num1+num2;
cout<<"\nTotal: "<<result;
getch();
break;
case 2:
cout<<"\nEnter Two Number: ";
cin>>num1>>num2;
result = num1-num2;
cout<<"\nSubstraction: "<<result;
getch();
break;
case 3:
cout<<"\nEnter Two Number: ";
cin>>num1>>num2;
result = num1*num2;
cout<<"\nMultiply: "<<result;
getch();
break;
case 0:
exit(0);
default: cout<<"\ninvalid selection....";
getch();
}
}while(select!=0);
}
OUTPUT
Enter any two number: 12 13
selection operation
1> Addition
2> Substraction
3> Multiply
4> Division
0> Exit
Your choice:
multiply are
12x13 = 156
selection operation
1> Addition
2> Substraction
3> Multiply
4> Division
0> Exit
Your choice:0
यहाँ पर program का termination user -input पर निर्भर करता है जो कि switch -statement defined किया गया है (case 0: exit करके )
अगर यहाँ पर loop का उपयोग नहीं किया जाता है तो क्या होता, जवाब है – program केवल एक ही विकल्प पर अमल करेगा और एक single execution के बाद, program स्वचालित रूप से समाप्त हो जाएगा अर्थात exit()
function की आवश्यकता भी नहीं होगी।
cout<<"Enter number:";
cin>>num1>>num2;
ऊपर दिया गया यह statement हर case में repeat हो रहा है, इससे बचने के लिए C++ में switch statement को function के साथ प्रयोग करें(नीचे दिया गया है )।
Related Exercise
- Printing only even number using do while loop
- a simple menu demonstration of two number operation using switch and do – while loop