2011-08-30 14 views
5

में जारी रखने का उपयोग कर पाठ फ़ाइलों के साथ काम करते समय जारी रखें जबकि लूप में जारी किया जा सकता है?एक लूप

मैं कुछ प्रसंस्करण करना चाहता हूं और कुछ मूल्यों की जांच करना चाहता हूं। यदि सही है, तो मैं एक पुनरावृत्ति छोड़ना चाहता हूं। यदि गलत है, तो मैं लाइनों के अगले सेट (प्रसंस्करण जारी रखना) जारी रखना चाहता हूं।

क्या इस मामले में जारी रखना एक पुनरावृत्ति छोड़ देता है?

+1

मुझे कभी-कभी यह पता चलता है कि अगर आप जारी छोड़ सकते हैं तो यह कोड स्पष्ट हो जाता है। आपके मामले में: यदि (AcctTag <> '') और (मास्टरआईडी <> '') तो फिर कुछ करें; – johnny

+1

@ जॉनी, पूरी तरह से सहमत हैं, जारी रखें एक गोटो की तरह है, अत्यधिक देखभाल के साथ इसका उपयोग करें या स्पेगेटी कोड राक्षस के क्रोध का सामना करें। – Johan

उत्तर

7

एक परीक्षण भी आवश्यक नहीं है।

डेल्फी कोड में, जारी प्रक्रिया के लिए संलग्न की अगले चरण के लिए आगे बढ़ने के लिए है, जबकि, या दोहराने बयान नियंत्रण के प्रवाह का कारण बनता है: The documentation पहले से ही आप इस सवाल का जवाब बताता है।

ध्यान दें कि लूप क्या कर रहा है इसके बारे में कोई चेतावनी नहीं है। जारी बयान के अगले पुनरावृत्ति पर आता है पाश। आपके मामले में, इसका मतलब है कि Eof फिर से चेक किया जाएगा, और फिर लूप का शरीर चला जाएगा।

+0

मुझे लगता है कि "अगली पुनरावृत्ति" के अर्थ में अस्पष्टता कहां है। 'For',' while' और 'repeat' के लिए इसका क्या अर्थ है? मुझे इस सवाल के जवाब पता हैं, लेकिन मेरे विचार में, अगर यह वर्तनी हो तो दस्तावेज़ीकरण बेहतर होगा। –

+0

ईजी। अगले पुनरावृत्ति के लिए _jumps_ अधिक स्पष्ट होगा। – NGLN

12

एक त्वरित 30-सेकंड का परीक्षण लगता है कि यहां एक पोस्ट से अधिक तेज़ी से जवाब मिलेगा। :)

program Project2; 

{$APPTYPE CONSOLE} 

uses 
    SysUtils; 

var 
    i, j: Integer; 

begin 
    j := 0; 
    i := 0; 
    while i < 10 do 
    begin 
    Inc(i); 
    if Odd(i) then 
     Continue; 
    Inc(j); 
    WriteLn(Format('i = %d, j = %d', [i, j])); 
    end; 
    ReadLn; 
end. 

Sample output

ध्यान दें कि iContinue करने के लिए कॉल, जो j में जो परिणाम विषम संख्या प्रदर्शित करने से पहले वृद्धि की जाती है, मैं even प्रदर्शित? j केवल तब बढ़ता है जब लूप Continue परीक्षण से पहले चला जाता है।

while वही काम करता है जैसे आप एक पूर्णांक में वृद्धि कर रहे हैं, एक स्ट्रिंग को संयोजित कर रहे हैं, या एक टेक्स्ट फ़ाइल से पढ़ रहे हैं। while एक whilewhile कोई फर्क नहीं पड़ता कि आप इसका उपयोग कैसे करते हैं। आपको बस यह सुनिश्चित करने की ज़रूरत है कि, ऊपर दिए गए कोड में, DoSomething वास्तव में फ़ाइल से अगली पंक्ति पढ़ता है या आप निरंतर लूप में समाप्त हो जाएंगे।

+1

** मॉडरेटर नोट ** _Please टिप्पणियां रचनात्मक और विषय पर रखें। मैंने इस उत्तर के तहत टिप्पणियां हटा दी हैं क्योंकि वे शोर_ में खराब हो गए हैं। –