Meaning and Use of goto Statement in Hindi
/ BCA / Programming with C and CPP
Meaning and Use of goto Statement in Hindi
What is goto Statement?
goto एक ऐसा control statement होता है जो प्रोग्राम की execution को एक जगह से सीधे दूसरी जगह भेज देता है। यानी अगर आप एक block के अंदर किसी लाइन से दूसरी लाइन पर सीधे jump कराना चाहते हैं, तो आप goto का उपयोग करते हैं।
यह structured programming concept के विरुद्ध होता है, क्योंकि यह प्रोग्राम की flow को जटिल बना देता है। फिर भी कुछ situations में इसका उपयोग किया जा सकता है, जैसे nested loops से बाहर निकलने के लिए या किसी error condition पर jump करने के लिए।
Use of goto Statement
- Multiple loops से एक ही बार में बाहर निकलने के लिए
- Error या exception handling के लिए
- कभी-कभी test cases या condition based skipping के लिए
Syntax of goto Statement in C in Hindi
goto Statement का Syntax:
#include <stdio.h>
int main() {
// कुछ कोड
goto label_name;
// यहाँ का कोड skip हो जाएगा
label_name:
// जहाँ jump करना है वो कोड
return 0;
}
ऊपर के कोड में goto label_name; यह निर्देश देता है कि control को label_name: वाले स्थान पर भेज दो। label एक user-defined नाम होता है जिसके बाद colon ( : ) लगाया जाता है।
Example of goto Statement:
#include <stdio.h>
int main() {
int number = 5;
if (number == 5) {
goto printMessage;
}
printf("यह लाइन execute नहीं होगी\n");
printMessage:
printf("Number पाँच है\n");
return 0;
}
इस उदाहरण में, जैसे ही number की value 5 पाई जाती है, control सीधे printMessage label पर चला जाता है और "Number पाँच है" प्रिंट होता है। बीच की लाइन skip हो जाती है।
Unstructured Programming using goto Statement in Hindi
goto क्यों Unstructured माना जाता है?
- यह program के flow को unpredictable बना सकता है।
- Code समझना और debug करना मुश्किल हो सकता है।
- Program spaghetti code बन जाता है (यानी उलझा हुआ code)।
- ज्यादातर structured programming languages में goto discouraged किया जाता है।
Unstructured Programming का अर्थ:
Unstructured Programming वह approach होती है जिसमें logic को किसी निश्चित structure या flow में नहीं लिखा जाता। उसमें control का बहाव इधर-उधर हो सकता है, जो future में maintenance के लिए मुश्किल हो जाता है। goto इस तरह की unstructured logic को बढ़ावा देता है।
Example of Unstructured Code using goto:
#include <stdio.h>
int main() {
int a = 1;
start:
if (a <= 5) {
printf("%d\n", a);
a++;
goto start;
}
return 0;
}
यह एक loop की तरह काम कर रहा है लेकिन यह while या for का उपयोग नहीं कर रहा है, जिससे यह unstructured हो गया है। यह छोटे प्रोग्राम में काम कर सकता है लेकिन बड़े प्रोग्राम में यह maintain करना मुश्किल हो जाएगा।
Label and Jump in goto Statement in Hindi
Label क्या होता है?
Label एक user-defined नाम होता है जिसके बाद colon : लगाया जाता है। यह goto statement के साथ काम करता है। जब हम goto लिखते हैं, तो हमें बताना होता है कि control कहां jump करेगा, और वह जगह label द्वारा represent की जाती है।
Jump कैसे होता है?
जब program execution goto label; पर आता है, तब वह code के flow को छोड़ कर सीधे उस label पर पहुँच जाता है और वहाँ से execution फिर से शुरू होती है।
Example (Label and Jump in goto):
#include <stdio.h>
int main() {
int i = 1;
repeat:
printf("Value: %d\n", i);
i++;
if (i <= 3)
goto repeat;
return 0;
}
यहाँ repeat: एक label है, और goto repeat; control को वापस label पर ले जाता है जिससे loop की तरह execution होता है।
Forward vs Backward Jump
| Jump Type | Description | उदाहरण |
|---|---|---|
| Forward Jump | जब goto नीचे के label की ओर jump करता है | goto label; // कुछ कोड label: |
| Backward Jump | जब goto ऊपर के label की ओर jump करता है | label: // कुछ कोड goto label; |
Multiple Labels और goto
आप एक ही function में multiple labels define कर सकते हैं और किसी भी condition के अनुसार वहां jump कर सकते हैं। लेकिन यह highly discouraged है क्योंकि इससे code बहुत ज्यादा complex हो सकता है।
Example: Multiple goto Statements
#include <stdio.h>
int main() {
int option = 2;
if (option == 1)
goto first;
else if (option == 2)
goto second;
else
goto end;
first:
printf("First option chosen.\n");
goto end;
second:
printf("Second option chosen.\n");
end:
printf("Program ended.\n");
return 0;
}
इस कोड में अलग-अलग conditions के अनुसार अलग-अलग labels पर jump किया गया है। इससे साफ होता है कि goto label-based navigation देता है, लेकिन इसकी clarity कम होती है।
नोट्स (Important Notes):
- goto का उपयोग केवल आवश्यक होने पर ही करें।
- Structured loops जैसे for, while, do-while का प्राथमिकता से उपयोग करें।
- कभी-कभी nested loop से बाहर निकलने के लिए यह उपयोगी हो सकता है।
Best Practice:
- जैसे ही आप एक से ज़्यादा goto का उपयोग करने लगते हैं, आपका program complex होने लगता है।
- Code readable और maintainable होना चाहिए, इसलिए goto से बचें।
FAQs
goto label_name;
...
label_name:
// statement;
यहाँ label_name वह नाम है जहाँ पर program को jump करना है और : के साथ लिखा जाता है।
start: