2012-10-10 16 views

उत्तर

14

GOTO बस एक लाइन के लिए कूदता है, GOSUB यह जहां (एक ढेर पर, शायद) से आया है का ट्रैक रखता है, इसलिए जब दुभाषिया एक RETURN सामना करना पड़ता है, इसे वापस अंतिम स्थान GOSUB बुलाया गया था को जाता है।

हालांकि मैं इस बारे में और अधिक उत्सुक हूं कि आप किसी भी चीज़ के लिए बेसिक का उपयोग क्यों कर रहे हैं?

+0

बेसिक अभी भी उपयोग किया जाता है। वीबी.नेट अभी भी बेसिक है। –

+1

क्या? वीबी.नेट एक पूरी तरह से अलग भाषा है। बेशक, इसे बेसिक कहा जाता है, लेकिन यह 'बेसिक' – Collin

+0

@ कोलिन नहीं है - आप बिंदु खो रहे हैं। वीबी.नेट अभी भी बेसिक है। हां इसमें कई ओओ एक्सटेंशन हैं लेकिन यह अभी भी मूलभूत आधारभूत है। निश्चित रूप से इसका अर्थ नहीं लिया गया है लेकिन यह एक निष्पादन रणनीति है जो भाषा की चिंता नहीं है। –

1

जब आप गोटो को कॉल करते हैं तो प्रोग्राम प्रश्न में लाइन पर कूद जाएगा और निष्पादन को आगे बढ़ाएगा।

यदि आप गोसब का उपयोग करते हैं, तो यह वही होगा, हालांकि किसी बिंदु पर आप एक रिटर्न स्टेटमेंट कोड कर सकते हैं और कोड GOSUB के ठीक बाद लाइन पर वापस आ जाएगा।

तो गोटो एक्स पर जाता है जबकि गोसब एक्स पर जाता है लेकिन याद रखें कि अब आप कहां हैं और आप बाद में वापस आ सकते हैं।

+0

में वर्बैटिम उद्धृत किया गया था; हालांकि, मुझे लगता है कि हम आदेशों का एक और हस्तांतरण शामिल कर सकते हैं जहां इच्छित निष्पादन योग्य निर्देश GOTO कथन का पालन करने वाली अगली पंक्ति में समाप्त हो गया है, फिर पहले नियंत्रण हस्तांतरण की रेखा के ऊपर नियंत्रण कथन का एक और हस्तांतरण ऐसा करने के लिए, हालांकि अधिक केवल सामान्य GOSUB की तुलना में कोड एकल वापसी। उदाहरण के लिए 10 गोटो 30. 15 कोड। 20 कोड 25 गोटो 45. 30 कोड। 35 कोड 40 गोटो 15. 45 अंत यह काम करेगा और यह कभी भी एक अनदेखी पाश में नहीं जाएगा। –

+0

मैं आपकी टिप्पणी नहीं पढ़ सकता। कृपया अपना प्रश्न संपादित करें। –

+0

आपका उत्तर सही है! मैं केवल एक और तरीका डालने की कोशिश कर रहा हूं जिसमें अधिक कोड शामिल होंगे। प्रश्न के उत्तर के लिए धन्यवाद। मैंने पहले ही आपके उत्तर के लिए मतदान किया है –

2

प्रदान किए गए अन्य उत्तरों GOTO और GOSUB का उपयोग करने के तरीके पर एक अच्छी व्याख्या देते हैं, लेकिन इनका संसाधित करने में एक महत्वपूर्ण अंतर है। जब एक गोटो निष्पादित किया जाता है तो यह स्टैक के शीर्ष पर शुरू होता है और कोड की सभी पंक्तियों के माध्यम से फ़्लिप करता है जब तक कि उसे उस रेखा को नहीं मिल जाता है जिसे वह प्राप्त करना चाहता है। फिर यदि आप वापस पाने के लिए एक और गोटो स्टेटमेंट का उपयोग करते हैं, तो यह फिर से स्टैक के शीर्ष पर जाता है और जब तक यह अगले स्थान तक नहीं जाता है तब तक सब कुछ के माध्यम से फ़्लिप करता है।

गोसब लगभग गोटो जैसा ही काम करता है, लेकिन यह याद करता है कि यह कहां था। जब आप रिटर्न स्टेटमेंट का उपयोग करते हैं तो यह पहले बिना स्टैक के शीर्ष पर जाकर और सब कुछ के माध्यम से फ़्लिप किए बिना वापस कूदता है, इसलिए यह बहुत तेज़ है। यदि आप अपने कोड को तेज़ी से चलाने के लिए चाहते हैं तो आपको स्टैक के शीर्ष पर अपनी सबसे ज्यादा सुराउटिन डालें और GOTO के बजाय GOSUB/RETURN का उपयोग करें।