goto Statement
goto Statement
किसी प्रोग्राम
के Execution
के Flow को इस Statement का प्रयोग करके तोडा जा सकता है और प्रोग्राम Control को प्रोग्राम में किसी अन्य चाही गई जगह पर भेजा जा सकता है , इसके द्वारा
हम आवश्यकता के अनुसार किसी Statement की पुनरावर्ती बार –
बार कर सकते हैं |
यह एक ऐसा Statement
है , जिसे किसी Condition के साथ प्रयोग करके Looping
का काम करवा सकते हैं और इसके द्वारा हम Program में कभी भी किसी भी Point पर जा सकते हैं |
इसकी
संरचना निम्नानुसार होती है |
इसकी संरचना में एक लेवल होता है , जो यह बताता है कि Program Control प्रोग्राम में कहाँ जाएगा | लेवल एक वेरियेबल हो सकता है | यह लेवल goto से पहले या बाद में कहीं भी आ सकता है | यानी
इस Code
Segment के आधार पर देखें तो प्रोग्राम Control को जैसे ही goto again Statement मिलता है ,
प्रोग्राम Control वहां आ जाता है , जहां again लिखा है और प्रोग्राम बीच के Statements को छोड़ देता
है |
यदि goto
Statement पहले Execute हो चुके Statements
से पहले आता है , तो Program Control पुनः
उन्ही Statements का Execution कर देता
है | जब किसी पिछले label
पर जाता है , तो इस प्रक्रिया को Backward Jump कहते है | लेकिन
यदि लेबल goto Statement के बाद में आता है , तो Program
Control बीच के Statement को छोड़ कर वहां से
आगे के Statements का Execution करना
शुरू कर देता है , जहां पर लेबल होता है |
इस
प्रक्रिया को Forward Jump कहते हैं |
इसे
समझने के लिए निम्न उदाहरण देखते हैं |
Example
इस
प्रोग्राम में 1 से 10 तक की
संख्या को Print किया गया है |
यदि
साधारण प्रोग्राम द्वारा ये काम करना हो , तो हमें 10 printf()
Function लिखने पडेंगे , जबकि इस प्रोग्राम में goto
Statement का प्रयोग करके अंकों को Print किया
है |
/* Use of goto Statement */
#include<stdio.h<
#include<conio.h>
main()
{
int i=0;
next:
i++;
if(i<=10)
{
printf("\n \t\t %d", i);
goto next;
}
getch();
return(0);
}
}इस
प्रोग्राम में एक int प्रकार का variable
i लिया है और goto Statement के साथ एक लेबल next
का प्रयोग किया है | Program
Control क्रम से एक int प्रकार का वेरियेबल i
Define करता है और इसका प्रारम्भिक मान 0 कर
देता है |
इसके
बाद next
नाम का एक लेबल Program Control को मिलता है |
यह
लेबल यहां पर कोई काम नहीं करता | किसी
भी goto
Statement के प्रोग्राम में लेबल का मतलब इतना ही होता है , कि
प्रोग्राम इस लेबल के आगे के Statements का Execution
करेगा , यानी लेबल “C” Compiler को मात्र उस Point
पर ले जाता है , जहां से आगे के Statements का
Execution होता है Program
Control इस लेबल के आगे के प्रथम Statement i++ का Execution करता है और i का
मान एक बढा देता है यानी 0 से बढाकर 1 कर
देता है | फिर if
कोष्टक में यह Check किया जाता है , कि i
का मान 10 से कम है या नहीं |
यहाँ
Condition
सत्य होती है , क्योंकि i का मान पहले चक्र
में 1 है | Condition
सत्य होने के कारण Program Control if Statement Block के Statements को Execution करता
है | यहां एक Printf()
Function द्वारा i का मान जो कि 1 है , print किया
जाता है | अगली पंक्ति में Program
Control को goto next Statement मिलता है और
प्रोग्राम कंट्रोल सारे Executions छोडकर पुनः चला जाता है ,
जहां next लेबल होता है और वहां से आगे के Statements
का पुनः Execution शुरू कर देता है |
यहां
वापस Program
Control को i++ मिलता है , जो कि i का मान एक और बढा कर 2 कर देता है |
वापस
if
Condition Check होता है और i का मान 2 print हो जाता है | फिर
वापस goto
next Statement मिलता है और Program Control वापस
next लेबल पर चला जाता है |
i
का मान पुनः एक बढ़ कर 3 हो जाता है |
पुनः
i
को print किया जाता है |
इस
प्रकार यह प्रक्रिया तब तक चलती रहती है जब तक कि i का मान 10 से
अधिक नहीं हो जाता | i
का मान 11 होते ही if Condition असत्य हो जाती है और Program Control if Condition पर
ना जाकर सीधे ही getch(); Statement पर चला जाता है और हमें Output
में 1 से 10 तक संख्या
प्राप्त हो जाती है |
No comments