Header Ads

ad728
  • New Updates

    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 द्वारा का मान जो कि 1 है , print किया जाता है | अगली पंक्ति में Program Control को goto next Statement मिलता है और प्रोग्राम कंट्रोल सारे Executions छोडकर पुनः चला जाता है , जहां next लेबल होता है और वहां से आगे के Statements का पुनः Execution शुरू कर देता है |

    यहां वापस Program Control को i++ मिलता है , जो कि i का मान एक और बढा कर 2 कर देता है | वापस if Condition Check होता है और का मान 2 print हो जाता है | फिर वापस goto next Statement मिलता है और Program Control वापस next लेबल पर चला जाता है | i का मान पुनः एक बढ़ कर 3 हो जाता है | पुनः i को print किया जाता है | इस प्रकार यह प्रक्रिया तब तक चलती रहती है जब तक कि का मान 10 से अधिक नहीं हो जाता | i का मान 11 होते ही if Condition असत्य हो जाती है और Program Control if Condition पर ना जाकर सीधे ही getch(); Statement पर चला जाता है और हमें Output में 1 से 10 तक संख्या प्राप्त हो जाती है |                       

     

    No comments

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728