डेल्फी प्रोग्रामिंग में लूप्स को समझना और उपयोग करना

सभी प्रोग्रामिंग भाषाओं में लूप एक सामान्य तत्व है। डेल्फी में तीन हैं नियंत्रण संरचनाओं कोड के ब्लॉक को बार-बार निष्पादित करें: के लिए, दोहराएं... जब तक और जब तक... कर।

लूप के लिए

मान लें कि हमें एक ऑपरेशन को कई बार तय करना है।

// 1,2,3,4,5 संदेश बॉक्स दिखाएं
वर j: पूर्णांक;
शुरू
के लिये j: = १ सेवा 5 कर
शुरू
ShowMessage ('Box:' + IntToStr (j));
समाप्त;
समाप्त;

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

instagram viewer

कभी-कभी पिछड़ों की गिनती करना आवश्यक होता है। downto कीवर्ड निर्दिष्ट करता है कि लूप निष्पादित होने पर प्रत्येक बार एक काउंटर के मूल्य को घटाया जाना चाहिए (यह एक के अलावा अन्य वृद्धि / वृद्धि को निर्दिष्ट करना संभव नहीं है)। लूप के लिए एक उदाहरण जो पीछे की ओर गिना जाता है।

वर j: पूर्णांक;
शुरू
के लिये j: = ५ downto 1 कर
शुरू
ShowMessage ('T minus' + IntToStr (j) + 'seconds');
समाप्त;
ShowMessage ('निष्पादित अनुक्रम के लिए!');
समाप्त;

नोट: यह महत्वपूर्ण है कि आप लूप के मध्य में नियंत्रण चर का मान कभी न बदलें। ऐसा करने से त्रुटियां होंगी।

छोरों के लिए नेस्टेड

जब आप किसी तालिका या ग्रिड में डेटा भरना / प्रदर्शित करना चाहते हैं, तो लूप (नेस्टिंग लूप) के लिए दूसरे के भीतर लूप के लिए लिखना बहुत उपयोगी होता है।

वर k, j: पूर्णांक;
शुरू
// इस डबल लूप को 4x4 = 16 बार निष्पादित किया गया है
के लिये k: = १ सेवा 4 कर
के लिये j: = ४ downto 1 कर
ShowMessage ('Box:' + IntToStr (k) + ',' + IntToStr (j));
समाप्त;

अगले लूप के लिए नेस्टिंग के लिए नियम सरल है: इनर लूप (j काउंटर) को बाहरी लूप का सामना करने के लिए अगले कथन (k काउंटर) से पहले पूरा करना होगा। हम त्रिकोणीय या चौगुनी नेस्टेड छोरों, या इससे भी अधिक हो सकते हैं।

नोट: आम तौर पर, आरंभ और अंत कीवर्ड की कड़ाई से आवश्यकता नहीं होती है, जैसा कि आप देख सकते हैं। यदि आरंभ और अंत का उपयोग नहीं किया जाता है, तो कथन के तुरंत बाद के कथन को लूप का निकाय माना जाता है।

फॉर-इन लूप

यदि आपके पास डेल्फी 2005 या कोई नया संस्करण है, तो आप कंटेनर पर "नए" फॉर-एलिमेंट-इन-कलेक्शन स्टाइल इटरेशन का उपयोग कर सकते हैं। निम्न उदाहरण प्रदर्शित करता है स्ट्रिंग अभिव्यक्तियों पर पुनरावृत्ति: प्रत्येक वर्ण के लिए स्ट्रिंग जांच में यदि चरित्र 'ए' या 'ई' या 'आई' है।

स्थिरांक
s = 'डेल्फी प्रोग्रामिंग के बारे में';
वर
c: चार;
शुरू
के लिये सी में रों कर
शुरू
अगर सी में [ 'एक', 'ई', 'मैं'] फिर
शुरू
// कुछ करो
समाप्त;
समाप्त;
समाप्त;

WHILE और REPEAT लूप्स

कभी-कभी हमें ठीक से पता नहीं होगा कि एक लूप को कितनी बार साइकिल चलाना चाहिए। क्या होगा यदि हम एक ऑपरेशन को दोहराना चाहते हैं जब तक कि हम एक विशिष्ट लक्ष्य तक नहीं पहुंचते?

जबकि लूप और रिपीट-लूप के बीच सबसे महत्वपूर्ण अंतर यह है कि कोड बार-बार बयान हमेशा कम से कम एक बार निष्पादित किया जाता है।

जब हम डेल्फी में एक दोहराव (और जबकि) प्रकार लिखते हैं तो सामान्य पैटर्न निम्नानुसार होता है:

दोहराना
शुरू
बयान;
समाप्त;
जब तक शर्त = सत्य
जबकि शर्त = सत्य कर
शुरू
बयान;
समाप्त;

पुनरावृत्ति तक 5 क्रमिक संदेश बॉक्स दिखाने के लिए यहाँ कोड है:

वर
j: पूर्णांक;
शुरू
j: = 0;
दोहराना
शुरू
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
समाप्त;
जब तक j> 5;
समाप्त;

जैसा कि आप देख सकते हैं, रिपीट स्टेटमेंट लूप के अंत में एक स्थिति का मूल्यांकन करता है (इसलिए रिपीट लूप को कम से कम एक बार सुनिश्चित करने के लिए निष्पादित किया जाता है)।

दूसरी ओर, बयान, लूप की शुरुआत में एक स्थिति का मूल्यांकन करता है। चूंकि परीक्षण शीर्ष पर किया जा रहा है, हमें आमतौर पर यह सुनिश्चित करने की आवश्यकता होगी कि लूप संसाधित होने से पहले स्थिति समझ में आती है, अगर यह सच नहीं है संकलक कोड से लूप को हटाने का निर्णय ले सकता है।

वर j: पूर्णांक;
शुरू
j: = 0;
जबकि j कर
शुरू
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
समाप्त;
समाप्त;

तोड़ो और जारी रखो

ब्रेक और जारी प्रक्रियाओं का उपयोग दोहराव वाले बयानों के प्रवाह को नियंत्रित करने के लिए किया जा सकता है: ब्रेक प्रक्रिया नियंत्रण के प्रवाह का कारण बनती है, जबकि, कथन को दोहराते हैं और अगले पर जारी रखते हैं बयान पाश का पालन करना बयान। जारी रखें नियंत्रण के प्रवाह को दोहराए जाने वाले ऑपरेशन के अगले पुनरावृत्ति के लिए आगे बढ़ने की अनुमति देता है।

instagram story viewer