फॉर, व्हाइल और डू व्हाइल लूप इन Javaउदाहरण सहित स्क्रिप्ट

⚡ स्मार्ट सारांश

फॉर, व्हाइल और डू व्हाइल लूप में Javaयह स्क्रिप्ट कोड को दोहराए बिना कथनों के एक ब्लॉक को दोहराती है। यह लेख प्रत्येक सिंटैक्स की व्याख्या करता है, अपेक्षित आउटपुट के साथ चलने योग्य उदाहरण दिखाता है, for-in और for-of रूपों को जोड़ता है, और ब्रेक, कंटिन्यू और अनंत लूप की रोकथाम को कवर करता है।

  • 🔁 मूल मकसद: एक लूप एक निश्चित संख्या तक या किसी निर्दिष्ट शर्त के सत्य रहने तक समान कथनों को बार-बार निष्पादित करता है।
  • 🔢 पाश के लिए: हेडर में मौजूद तीन अभिव्यक्तियाँ आरंभीकरण, निकास परीक्षण और अद्यतन को संभालती हैं, जो एक ज्ञात पुनरावृति संख्या के लिए उपयुक्त है।
  • while लूप: प्रत्येक पास से पहले इस स्थिति का परीक्षण किया जाता है, इसलिए यदि स्थिति शुरू में ही गलत पाई जाती है तो बॉडी कभी भी निष्पादित नहीं हो सकती है।
  • 1️⃣ डू…व्हाइल लूप: शरीर की जांच कम से कम एक बार जरूर होती है क्योंकि पहली जांच के बाद स्थिति का मूल्यांकन किया जाता है।
  • 🔑 लूप में: यह किसी ऑब्जेक्ट की कुंजियों पर पुनरावृति करता है और मानों के बजाय प्रॉपर्टी के नाम लौटाता है।
  • 📦 लूप के लिए… यह ऐरे, स्ट्रिंग, मैप और अन्य इटरेबल ऑब्जेक्ट के मानों पर इटरेट करता है।
  • प्रवाह नियंत्रण: ब्रेक स्टेटमेंट लूप से तुरंत बाहर निकल जाता है, जबकि कंटिन्यू स्टेटमेंट अगले चरण पर चला जाता है।

For While और Do While लूप में Javaलिपि

लूप क्या है? Javaलिखी हुई कहानी?

लूप तब उपयोगी होते हैं जब आपको कोड की एक ही लाइन को बार-बार, एक निश्चित संख्या में या जब तक कोई विशिष्ट शर्त सत्य हो, निष्पादित करना होता है। मान लीजिए कि आप अपने वेबपेज में 100 बार 'हैलो' संदेश टाइप करना चाहते हैं। बेशक, आपको एक ही लाइन को 100 बार कॉपी करके पेस्ट करना होगा। इसके बजाय, यदि आप लूप का उपयोग करते हैं, तो आप इस कार्य को केवल 3 या 4 लाइनों में पूरा कर सकते हैं।

हर लूप, चाहे उसका सिंटैक्स कैसा भी हो, तीन समान भागों से बना होता है: एक प्रारंभिक मान, एक शर्त जो यह तय करती है कि अगला चरण चलेगा या नहीं, और एक अपडेट जो लूप को उसके अंत की ओर ले जाता है। नीचे दिया गया आरेख इस दोहराए जाने वाले चक्र को दर्शाता है।

लूप्स का उपयोग करें Javascript

विभिन्न प्रकार के लूप Javaलिपि

इसमें मुख्यतः चार प्रकार के लूप होते हैं Javaलिपि.

  1. पाश के लिए
  2. for/in लूप
  3. घुमाव के दौरान
  4. do…while लूप

आधुनिक Javaस्क्रिप्ट सीधे मानों को दोहराने के लिए for…of लूप जोड़ती है, इसलिए व्यवहार में पाँच प्रकार उपलब्ध हैं। नीचे दी गई तालिका दर्शाती है कि किसी विशेष स्थिति में किस प्रकार का उपयोग करना है।

पाश स्थिति की जाँच की गई न्यूनतम निष्पादन के लिए सर्वोत्तम उपयोग
एसटी प्रत्येक पास से पहले 0 ज्ञात संख्या में पुनरावृत्ति
जब प्रत्येक पास से पहले 0 किसी स्थिति से प्रेरित एक अज्ञात गणना
जबकि ऐसा प्रत्येक पास के बाद 1 वे मेनू और प्रॉम्प्ट जो केवल एक बार चलने चाहिए
में लिए प्रत्येक पास से पहले 0 किसी वस्तु की कुंजियों को पढ़ना
के लिए प्रत्येक पास से पहले 0 किसी ऐरे या स्ट्रिंग के मानों को पढ़ना

पाश के लिए

सिंटेक्स:

for(statement1; statement2; statment3)
{
lines of code to be executed
}
  1. स्टेटमेंट 1 को लू के निष्पादन से पहले ही निष्पादित किया जाता है।ping कोड। इसलिए, इस कथन का उपयोग सामान्यतः उन चरों को मान निर्दिष्ट करने के लिए किया जाता है जिनका उपयोग लूप के अंदर किया जाएगा।
  2. कथन2 लूप को निष्पादित करने की शर्त है।
  3. स्टेटमेंट 3 हर बार लू के बाद निष्पादित होता हैping कोड निष्पादित हो गया है।

इसे स्वयं आज़माएँ:

<html>
<head>
	<script type="text/javascript">
		var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth");
		document.write("<b>Using for loops </b><br />");
		for (i=0;i<students.length;i++)
		{
		document.write(students[i] + "<br />");
		}
	</script>
</head>
<body>
</body>
</html>

आउटपुट:

Using for loops
John
Ann
Aaron
Edwin
Elizabeth

काउंटर 0 से शुरू होता है क्योंकि पहले इंडेक्स का मान 0 होता है। सरणी यह शून्य है, और शर्त students.length का उपयोग करती है, इसलिए नाम जोड़े या हटाए जाने पर लूप स्वचालित रूप से अनुकूलित हो जाता है।

घुमाव के दौरान

सिंटेक्स:

while(condition)
{
lines of code to be executed
}

जब तक निर्दिष्ट शर्त सत्य है, तब तक "while loop" निष्पादित होता है। while loop के अंदर, आपको वह कथन शामिल करना चाहिए जो किसी समय पर loop को समाप्त कर देगा। अन्यथा, आपका loop कभी समाप्त नहीं होगा और आपका ब्राउज़र क्रैश हो सकता है।

इसे स्वयं आज़माएँ:

<html>
<head>
	<script type="text/javascript">
		document.write("<b>Using while loops </b><br />");
		var i = 0, j = 1, k;
		document.write("Fibonacci series less than 40<br />");
		while(i<40)
		{
			document.write(i + "<br />");
			k = i+j;
			i = j;
			j = k;
		}
	</script>
</head>
<body>
</body>
</html>

आउटपुट:

Using while loops
Fibonacci series less than 40
0
1
1
2
3
5
8
13
21
34

⚠️ चेतावनी: एक while लूप जिसकी कंडीशन कभी false नहीं होती, ब्राउज़र टैब को फ्रीज़ कर देता है। हमेशा यह सुनिश्चित करें कि बॉडी के अंदर मौजूद वेरिएबल कंडीशन को false की ओर ले जा रहा है, और जब एग्जिट बाहरी डेटा पर निर्भर करता हो तो सेफ्टी काउंटर का उपयोग करें।

do…while लूप

सिंटेक्स:

do
{
block of code to be executed
} while (condition)

do…while लूप while लूप के समान ही होता है। अंतर केवल इतना है कि do…while लूप में, कोड का ब्लॉक कंडीशन की जांच किए बिना ही एक बार एग्जीक्यूट हो जाता है।

इसे स्वयं आज़माएँ:

<html>
<head>
	<script type="text/javascript">
		document.write("<b>Using do...while loops </b><br />");
		var i = 2;
		document.write("Even numbers less than 20<br />");
		do
		{
			document.write(i + "<br />");
			i = i + 2;
		}while(i<20)
	</script>
</head>
<body>
</body>
</html>

आउटपुट:

Using do...while loops
Even numbers less than 20
2
4
6
8
10
12
14
16
18

अंतर तब स्पष्ट होता है जब शुरुआत से ही शर्त गलत हो। while लूप कुछ भी प्रिंट नहीं करता, जबकि do…while लूप रुकने से पहले एक लाइन प्रिंट करता है।ping.

for…in लूप

for…in लूप किसी ऑब्जेक्ट के एन्यूमरेबल प्रॉपर्टी नामों के माध्यम से चलता है। प्रत्येक पास में लूप वेरिएबल को अगली कुंजी असाइन की जाती है, और मान को ब्रैकेट नोटेशन के साथ पढ़ा जाता है।

const student = {
    name: "Ann",
    age: 21,
    course: "JavaScript"
};

for (const key in student) {
    console.log(key + " : " + student[key]);
}

आउटपुट:

name : Ann
age : 21
course : JavaScript

💡टिप: एरे पर for…in लूप का प्रयोग करने से बचें। यह इंडेक्स मानों को स्ट्रिंग के रूप में लौटाता है और इनहेरिटेड प्रॉपर्टीज़ को भी एक्सेस करता है, जिससे अप्रत्याशित परिणाम आ सकते हैं। इसके बजाय एरे के लिए for…of या क्लासिक for लूप का प्रयोग करें।

for…of लूप और forEach

for…of लूप किसी भी इटरेबल ऑब्जेक्ट के मानों को पढ़ता है, जिसमें एरे, स्ट्रिंग, मैप और सेट शामिल हैं। forEach विधि कॉलबैक फ़ंक्शन के साथ यही परिणाम प्राप्त करती है और इंडेक्स तक पहुंच प्रदान करती है।

const students = ["John", "Ann", "Aaron"];

// for...of reads each value directly
for (const name of students) {
    console.log(name);
}

// forEach supplies the value and the index
students.forEach(function (name, index) {
    console.log(index + " - " + name);
});

// strings are iterable too
for (const letter of "Ann") {
    console.log(letter);
}

आउटपुट:

John
Ann
Aaron
0 - John
1 - Ann
2 - Aaron
A
n
n

एक महत्वपूर्ण व्यावहारिक अंतर यह है कि ब्रेक और कंटिन्यू, for…of फ़ंक्शन के अंदर काम करते हैं, लेकिन forEach के अंदर इनका उपयोग नहीं किया जा सकता है, क्योंकि प्रत्येक कॉलबैक एक अलग फ़ंक्शन होता है।

विराम और जारी कथन

दो कीवर्ड किसी भी लूप के सामान्य प्रवाह को बदल देते हैं। ब्रेक स्टेटमेंट लूप से पूरी तरह बाहर निकल जाता है, और कंटिन्यू स्टेटमेंट वर्तमान चरण को छोड़कर अगले चरण पर चला जाता है।

const numbers = [4, 7, 10, 13, 16, 19];

// continue: skip odd numbers
for (const n of numbers) {
    if (n % 2 !== 0) {
        continue;
    }
    console.log("even: " + n);
}

// break: stop at the first value above 12
for (const n of numbers) {
    if (n > 12) {
        console.log("first value above 12: " + n);
        break;
    }
}

आउटपुट:

even: 4
even: 10
even: 16
first value above 12: 13

आप जो भी स्क्रिप्ट लिखेंगे, उसमें लगभग हर जगह लूप दिखाई देंगे। आगे बढ़ते रहें। व्यावहारिक Javaस्क्रिप्ट कोड के उदाहरणपुनः देखें Javaस्क्रिप्ट ऐरे विधियाँ इन लूपों के ऊपर निर्मित पुनरावृति सहायकों के लिए, और पढ़ें आंतरिक व बाह्य Javaलिपि यह तय करने के लिए कि तैयार स्क्रिप्ट को कहाँ रखा जाना चाहिए।

अक्सर पूछे जाने वाले प्रश्न

while लूप पहले पास से पहले ही स्थिति की जांच करता है, इसलिए हो सकता है कि बॉडी कभी चले ही न। do…while लूप बाद में जांच करता है, जो ब्लॉक के कम से कम एक बार निष्पादन की गारंटी देता है।

जी हां। भीतरी लूप बाहरी लूप के प्रत्येक पास के लिए प्रत्येक पास को पूरा करता है, इसी तरह ग्रिड और टेबल बनाए जाते हैं। बाहरी इंडेक्स को ओवरराइट होने से बचाने के लिए अलग-अलग काउंटर नामों का उपयोग करें।

प्रभावित टैब को बंद करें, फिर पुनः लोड करने से पहले स्थिति या अपडेट स्टेटमेंट को ठीक करें। एक काउंटर जोड़ने से, जो अधिकतम संख्या में पास होने के बाद रुक जाता है, विकास के दौरान पुनरावृत्ति को रोका जा सकता है।

बड़े एरे पर क्लासिक फॉर लूप थोड़ा तेज़ होता है क्योंकि इसमें कॉलबैक ओवरहेड नहीं होता। कुछ हज़ार आइटम से कम होने पर अंतर नगण्य होता है, इसलिए पठनीयता को प्राथमिकता दें।

वे आम तौर पर for…of या map का उपयोग करते हैं। Revजब कार्य के लिए इंडेक्स, शीघ्र निकास या गारंटीकृत प्रथम पास की आवश्यकता हो, तो सुझाव देखें, क्योंकि उन मामलों में एक अलग प्रारूप की आवश्यकता होती है।

एक for await…of लूप स्ट्रीम किए गए रिस्पॉन्स से चंक्स पढ़ता है और प्रत्येक टोकन को पेज में जोड़ता है। यह for…of का अतुल्यकालिक समकक्ष है और इसके लिए एक async फ़ंक्शन की आवश्यकता होती है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: