2011-04-08 13 views
7

संभव डुप्लिकेट:
When is a do-while appropriate?do-, जबकि बयान

चाहेंगे

कोई मन मुझे बता क्या इन दोनों के बयान के बीच अंतर कर रहे हैं और जब एक दूसरे के ऊपर इस्तेमाल किया जाना चाहिए?

var counterOne = -1; 

do { 
    counterOne++; 
    document.write(counterOne); 
} while(counterOne < 10); 

                                                                                                                                                                  और

var counterTwo = -1; 

while(counterTwo < 10) { 
    counterTwo++; 
    document.write(counterTwo); 
} 

                                                                                                                  http://fiddle.jshell.net/Shaz/g6JS4/

इस पल समय में मैं do बयान की बात नहीं दिख रहा है, तो यह सिर्फ while बयान के अंदर यह निर्दिष्ट किए बिना किया जा सकता है पर।

+0

http://stackoverflow.com/questions/1035229/when-is-a-do-while-appropriate –

+0

@lwburk की डुप्लिकेट: यदि आप डेटा "इकट्ठा" दूसरे मामले, उपयोगी है: मैं अन्य loops ('के लिए', 'स्विच',' if') के बारे में नहीं पूछ रहा हूँ। मैं सोच रहा हूं कि 'while' और 'do-while' के बीच का अंतर क्या है। – Shaz

+0

गैर अनुक्रमक। यह वही है जो उस सवाल के बारे में था। –

उत्तर

20

क्या करें/जबकि वीएस जबकि स्थिति की जांच की जाती है।

एक जबकि लूप स्थिति की जांच करता है, फिर लूप निष्पादित करता है। एक करें/लूप निष्पादित करता है और फिर शर्तों की जांच करता है।

उदाहरण के लिए, यदि counterTwo वैरिएबल 10 या अधिक था, तो करें/जबकि लूप एक बार निष्पादित होगा, जबकि आपका सामान्य लूप लूप निष्पादित नहीं करेगा।

8

do-while कम से कम एक बार चलाने की गारंटी है। जबकि while लूप बिल्कुल नहीं चल सकता है।

1

कर्तव्य सामान्य रूप से सुनिश्चित करता है कि शुरुआत में मूल्यांकन करते समय आपके कोड को कम से कम एक बार (अभिव्यक्ति का मूल्यांकन किया गया) निष्पादित किया जाता है।

1

आइए कहें कि आप इस शर्त के बावजूद कम से कम एक बार लूप के अंदर ब्लॉक को संसाधित करना चाहते हैं।

1

do while ब्लॉक चलाने के बाद सशर्त जांचता है। while इसे चलाने से पहले सशर्त जांचता है। यह आमतौर पर उन परिस्थितियों में उपयोग किया जाता है जहां कोड हमेशा कम से कम एक बार चलाया जाता है।

1

यदि आपको काउंटर दो मूल्य किसी अन्य फ़ंक्शन के रिटर्न वैल्यू के रूप में प्राप्त होगा, तो आप पहले मामले में एक if कथन सुरक्षित करेंगे।

उदा। यदि आप एक मौजूदा सरणी में डेटा की प्रक्रिया

var counterTwo = something.length; 

while(counterTwo > 0) { 
    counterTwo--; 
    document.write(something.get(counterTwo)); 
} 

या

var counterTwo = something.length; 

if(counterTwo < 0) return; 

do 
{ 
     counterTwo--; 
    document.write(something.get(counterTwo)); 
} while(counterTwo > 0); 

पहला मामला उपयोगी है।

do 
{ 
    a = getdata(); 
    list.push(a); 
} while(a != "i'm the last item");