goto Statement in C Language

goto Statement in C Language: किसी प्रोग्राम के Execution के Flow को इस Statement का प्रयोग करके तोडा जा सकता है और प्रोग्राम Control को प्रोग्राम में किसी अन्‍य चाही गई जगह पर भेजा जा सकता है। इसके द्वारा हम आवश्‍यकता के अनुसार किसी Statement की पुनरावर्ती बार-बार कर सकते हैं। यह एक ऐसा Statement है, जिसे किसी Condition के साथ प्रयोग करके Looping का काम करवा सकते हैं और इसके द्वारा हम Program में कभी भी किसी भी Point पर जा सकते हैं। इसकी संरचना निम्नानुसार होती है:

        goto label;                                          label:
                statements;                                         statements;
        label:                                                   goto label;

इसकी संरचना में एक लेबल होता है, जो यह बताता है कि Program Control प्रोग्राम में कहां जाएगा। लेबल एक वेरियेबल हो सकता है। यह लेबल goto से पहले या बाद में कहीं भी आ सकता है। यानी

        goto again;
                statements;
        again:

इस Code Segment के आधार पर देखें तो प्रोग्राम Control को जैसे ही goto again Statement मिलता है, प्रोग्राम Control वहां आ जाता है, जहां again लिखा है और प्रोग्राम बीच के Statements को छोड देता है।

यदि goto Statement पहले Execute हो चुके Statements से पहले आता है, तो Program Control पुन: उन्हीं Statements का Execution कर देता है। जब किसी परिस्थितिवश किन्हीं Statements का बार-बार Execution होने लगता है, तो इस प्रकार की परिस्थिति को Looping कहते हैं।

जब goto Statement किसी पहले से Execute हो चुके Statement को Execute करने के लिए Program के किसी पिछले Label पर जाता है, तो इस प्रक्रिया को Backward Jump कहते हैं। लेकिन यदि लेबल goto Statement के बाद में आता है, तो Program Control बीच के Statements को छोड कर वहां से आगे के Statements का Execution करना शुरू कर देता है, जहां पर लेबल होता है। इस प्रक्रिया को  Forward Jump कहते हैं। इसे समझने के लिए निम्न उदाहरण देखते हैं:

Example: इस प्रोग्राम में 1 से 10 तक की संख्‍या को Print किया गया है। यदि साधारण प्रोग्राम द्वारा ये काम करना हो, तो हमें 10 printf() Function लिखने पडेंगे, जबकि इस प्रोग्राम में goto Statement का प्रयोग करके अंकों को Print किया है।

Program
	/* Use of goto Statement */
	#include<stdio.h>
	#include<conio.h>
	main()
	{
		int i=0;
		clrscr();
		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 कर देता है। फिर Program Control clrscr(); Function पर जाता है।

ये Function Output Screen को साफ करने का काम करता है। इसके बाद 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 तक की संख्‍या प्राप्त हो जाती है।

Else if Ladder in C Language
Looping Statements in C Language

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS