C ++ में goto – statement का उपयोग program में कहीं भी control transfer करने के लिए किया जाता है। क्योंकि यह program के एक भाग दूसरे भाग में jump करता है, इसलिए इसे jumping statement भी कहा जाता है,
goto statement अन्य control statements से अलग है। अन्य control statements में, जहां एक शर्त के तहत execution किया जाता है, goto -statement में, हम program को किसी condition के बिना ही control को दूसरे स्थान पर transfer कर सकते हैं।
अन्य control statements का उपयोग करके हम conditional transfer करते हैं। यहाँ हम conditional और unconditional transfer दोनों पर कार्य करेंगे।
एक program में goto -statement का उपयोग करने के दो तरीके हैं,
First
goto label;
...........
...........
lable:
..........
..........
Second
label:
...........
...........
goto label;
..........
..........
जहां labell एक identifier है।
यहाँ goto
-statement का flow -diagram दिया गया है –
goto statement Flow chart in C++
जैसा कि आप आरेख में देख सकते हैं, एक statement के बाद, बिना किसी condition के साथ इस्तेमाल goto
-statement का प्रयोग किया गया है।
बेहतर तरीके से समझने के लिए , उपरोक्त flow -diagram की तुलना अन्य control – statements के साथ करें।
Example of goto statement in C++
नीचे दिए गए कार्यक्रम में हम यह पता लगाएंगे कि क्या दी गई संख्या equal है या नहीं।
यहाँ, goto -statement एक condition के तहत jump करेगा , हम कह सकते हैं कि यहाँ एक conditional – transfer perform किया जायेगा क्योंकि goto – statement control -statement (if -statement ) के अंदर defined है, इसलिए जैसे ही if -statement में condition true होती है तभी control transfer किया जायेगा।
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int num1,num2;
cout<<"Enter Two number: ";
cin>>num1>>num2;
if(num1==num2)
goto transfer;
else
cout<<"Given number are not Equal";
transfer: {
cout<<"\nGiven number are Equal "<<x;
}
getch();
}
OUTPUT
Enter Two number: 5 5
Given number are Equal
Explanation
यहां हमने label -name का transfer दिया है। program में हमने if-body के अंदर goto -statement defined किया।
जैसे ही if -statement condition में true हो जाती है, body of if-else execute होता है और goto – statement execute होता है जो control को सीधे if -statement के बाहर ट्रांसफर कर देता है पर अगर condition false होती है तो else-body execute होती है।
उपरोक्त Program निम्नानुसार execute करेगा,
अब हमने निम्नलिखित program में unconditional transfer को perform किया है।
goto statement with break statement in C++
नीचे दिए गए Program में, हम user द्वारा दिए गए दो नंबर को एक अलग तरीके से जोड़ते हैं, यहाँ हम एक statement के भीतर एक break
– statement के साथ goto
को loop बनाने के लिए उपयोग करते हैं ये दोनों statement किसी भी looping statement का उपयोग किए बिना एक loop की तरह व्यवहार करेंगे।
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int num1,num2,sum;
start:
cout<<"\nEnter two number: ";
cin>>num1>>num2;
if(num1== 0 || num2==0)
break;
sum = num1+num2;
cout<<"Total: "<<sum;
goto start;
cout<<"this is next statement";
}
OUTPUT
Enter two number: 3 4
Total: 7
Enter two number: 6 3
Total : 9
Enter two number: 0 4
Explanation
Program में, हम एक condition के भीतर if-statement के अंदर break -स्टेटमेंट defined करते हैं और condition यह है कि program execution में तब तक रहेगा जब तक कि किसी एक variable का मान 0 नहीं हो जाता।
जब तक किसी एक variable का मान 0 नहीं हो जाता, तब तक program संख्याओं को जोड़ते रहेंगे जैसे ही किसी एक variable का मान 0 होगा, if -statement execute किया जाएगा, जो goto
– statement को terminate कर देगा और execution / control अगले statement पर जाएगा।
उपरोक्त कार्यक्रम का execution निम्नानुसार है,
goto statement with continue
निम्नलिखित Program में, हम एक series से विषम संख्या print करेंगे।
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
for(int i=0; i<=20; i++)
{
if(i%2==0)
goto even; // even number
else
continue; // odd number skip
even:
cout<<i<<"\t";
}
getch();
}
OUTPUT
0 2 4 6 8 10 12 14 16 18 20
Thing to know
goto -statement Program में कहीं भी control को transfer कर सकता है और C++ में function भी यह कार्य कर सकता है।
लेकिन जहाँ function control वापस कर सकता है goto – statement नहीं करता है। इसका मतलब यह है कि goto
केवल एक तरफा transfer करता है।
Programming skill को बेहतर बनाने में goto-statement का आप प्रयोग कर सकते हैं logics को बेहतर बनाने के लिए यह अच्छा अभ्यास हो सकता है।
जैसा कि कहा गया कि goto
बिना condition के, किसी program में control कहीं भी transfer किया जा सकता है अर्थात इसका एक conditional transfer optional होता है। unconditional transfer के कारण यह बड़े कोड में output – error दे सकता है और यह सुरक्षा की दृष्टि से भी हानिकारक है इसलिए एक developer एक अच्छे प्रोग्रामिंग के रूप में goto
को नहीं चुनता है।
हालाँकि, शुरुआत में एक दूसरे के साथ control statements का उपयोग करके आप इससे लॉजिक्स बनाने की क्षमता विकसित कर सकते हैं, इसलिए एक beginner एक goto
के साथ जा सकता है। बाद में आपको स्वतः पता चल जायेगा है कि goto statement का उपयोग कहां किया जाना चाहिए और कहां नहीं।
previous – continue statement in C++
next – exit function in C++