उच्च-स्तरीय नियंत्रण प्रवाह निर्माण समस्या क्षेत्र में अवधारणाओं के अनुरूप होते हैं। एक / कुछ अन्य शर्त के आधार पर एक निर्णय है। एक पाश बार-बार कुछ कार्रवाई करने के लिए कहता है। यहां तक कि एक ब्रेक स्टेटमेंट में कहा गया है "हम बार-बार ऐसा कर रहे थे, लेकिन अब हमें रोकने की जरूरत है"।
दूसरी ओर, एक गोटो स्टेटमेंट, रनिंग प्रोग्राम में एक कॉन्सेप्ट के अनुरूप होता है, समस्या क्षेत्र में नहीं। यह कार्यक्रम में एक निर्दिष्ट बिंदु पर निष्पादन जारी रखने के लिए कहता है । किसी कोड को पढ़ने के लिए है उसका अनुमान लगा समस्या डोमेन के संबंध में क्या है कि इसका मतलब है।
बेशक सभी उच्च-स्तरीय निर्माणों को गोटो और सरल सशर्त शाखाओं के संदर्भ में परिभाषित किया जा सकता है। इसका मतलब यह नहीं है कि वे केवल भेस में हैं। उन्हें प्रतिबंधित गोटो के रूप में सोचो - और यह प्रतिबंध है जो उन्हें उपयोगी बनाते हैं। एक ब्रेक स्टेटमेंट को एन्कोडिंग लूप के अंत में एक छलांग के रूप में लागू किया जाता है, लेकिन यह बेहतर है कि लूप पर एक पूरे के रूप में काम किया जाए।
बाकी सभी समान हैं, कोड जिनकी संरचना दर्शाती है कि समस्या डोमेन को पढ़ने और बनाए रखने में आसान हो जाती है।
ऐसे कोई मामले नहीं हैं जहां एक गोटो बयान की आवश्यकता है ( उस प्रभाव के लिए एक प्रमेय है), लेकिन ऐसे मामले हैं जहां यह कम से कम बुरा समाधान हो सकता है। वे मामले भाषा से भाषा में भिन्न होते हैं, जो इस बात पर निर्भर करता है कि भाषा किस उच्च स्तर का निर्माण करती है।
सी में, उदाहरण के लिए, मेरा मानना है कि तीन बुनियादी परिदृश्य हैं जहां एक गोटो उपयुक्त है।
- एक नेस्टेड लूप से बाहर निकलना। यह अनावश्यक होगा यदि भाषा में लेबल विच्छेद कथन होता है।
- त्रुटि या अन्य अप्रत्याशित घटना के मामले में कोड (आमतौर पर एक कार्य निकाय) के खिंचाव से बाहर निकलते हुए। यह अनावश्यक होगा यदि भाषा में अपवाद थे।
- एक स्पष्ट परिमित राज्य मशीन को लागू करना। इस मामले में (और, मुझे लगता है, केवल इस मामले में) एक गोटो समस्या डोमेन में एक अवधारणा से सीधे मेल खाती है, एक राज्य से एक निर्दिष्ट दूसरे राज्य में संक्रमण, जहां वर्तमान राज्य का प्रतिनिधित्व कोड के किस ब्लॉक द्वारा वर्तमान में किया जा रहा है ।
दूसरी ओर, एक स्पष्ट परिमित राज्य मशीन को एक लूप के अंदर स्विच स्टेटमेंट के साथ भी लागू किया जा सकता है। इसका यह लाभ है कि प्रत्येक राज्य कोड में एक ही स्थान पर शुरू होता है, जो डिबगिंग के लिए उपयोगी हो सकता है, उदाहरण के लिए।
एक उचित आधुनिक भाषा में गोटो का मुख्य उपयोग (यदि / / और छोरों का समर्थन करता है) भाषा से गायब होने वाले नियंत्रण प्रवाह निर्माण का अनुकरण करना है।