2016-10-11 14 views
8

while लूप for लूप पर उपयोग करने के क्या फायदे हैं? जब मैं सरणी के माध्यम से पुनरावृत्ति कर रहा हूं, तो मैं हमेशा for लूप का उपयोग करता हूं, इसलिए मुझे आश्चर्य हुआ कि मुझे यहां कुछ याद आ रहा है या नहीं।जबकि लूप्स बनाम जावास्क्रिप्ट में लूप्स के लिए?

मुझे ऐसी स्थिति नहीं मिली है जहां for लूप नौकरी नहीं करता है, लेकिन मुझे चिंता है कि मैं यहां बुरी आदतों को उठा रहा हूं। छोरों का मेरा उपयोग वेब पन्नों पर तत्वों, एनिमेशन में सामान, आदि के संबंध में किया गया है ..

उत्तर

19

इन कारणों मैं एक दूसरे के ऊपर का चयन करेंगे कर रहे हैं:

के लिए लूप सिंटेक्स:

for(int i = 0; i > 10; i++) 
{ 
    //Some code here 
} 

मैं इस कारण के लिए एक लूप का उपयोग करूंगा कि मुझे उन संख्याओं की संख्या पता हो सकती है जिन्हें मुझे करने की ज़रूरत है और मेरे पास एक संवर्धन चर है जो कभी-कभी आसान हो सकता है।

जबकि लूप सिंटेक्स:

while(!done) 
{ 
    //Some code goes here 
} 

मैं इस लूप का प्रयोग करेंगे जब मैं यकीन है कि कितने पुनरावृत्तियों मैं बाहर ले जाने की जरूरत हो सकती नहीं कर रहा हूँ। उदाहरण: उपयोगकर्ता के लिए सही इनपुट मान इनपुट करने की प्रतीक्षा करना और लूपिंग रखना जब तक कि वह उचित मूल्य इनपुट न करे।

डो-जबकि पाश सिंटेक्स:

do 
{ 
    //Some code here 
} 
while(!done); 

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

+1

धन्यवाद रेज़वान यह एक अच्छा जवाब है। –

6

तुम हमेशा या तो छोरों की उपयोग कर सकते हैं। लेकिन, for लूप का सबसे आम उपयोग तब होता है जब पुनरावृत्तियों की संख्या ज्ञात होती है, और while लूप अनुक्रमांक की अनिश्चित संख्या या किसी विशेष स्थिति पर निर्भर करती है। उदाहरण के लिए:

var arr = ["a", "b", "c"]; 
for (let i=0; i<arr.length; i++) { // will loop 3 times (length of arr = 3) 
    // do something 
} 

var x = "Hello"; 
while (x != "World") { 
    // do something 
    if (some_condition) { 
     // do something 
    } 
    else x = "World"; 
} 
6

कार्यात्मक रूप से, कोई अन्य स्थितियों में दूसरे को प्रतिस्थापित कर सकता है। क्या यह दूसरे से बढ़िया है? जावास्क्रिप्ट में नहीं (जिसे आपने टैग किया है) क्योंकि यह संकलित भाषा नहीं है।

लेकिन सी ++ जैसी भाषाओं में, एक लूप आमतौर पर कंपाइलर को लूप को स्थिर गणना देता है जो संकलक बाइनरी को अनुकूलित करने के लिए उपयोग कर सकता है। तो इसे तेजी से चलाना चाहिए (बहुत बड़ी लूप गणनाओं पर)।

यह आज की उम्र में चिंता नहीं होना चाहिए, जहां आप 2.5 गीगा क्वाड कोर सीपीयू पर 10000 पुनरावृत्तियों के लिए चल रहे लूप पर प्रदर्शन वृद्धि को भी ध्यान में नहीं रखेंगे।

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

संक्षेप में, वाक्यविन्यास का पालन करें।क्या आप बस एक शर्त की जांच कर रहे हैं? थोड़ी देर के साथ जाओ। क्या आप एक स्थिति की जांच के साथ एक लूप के संदर्भ में कुछ शुरू करना और बढ़ाना/घटाना चाहते हैं? केवल लूप के साथ जाओ।

+0

मुझे बिंदु पर, अंतिम बयान पसंद है। – Ezeewei

संबंधित मुद्दे