टाइपस्क्रिप्ट पुनरावृत्ति कथन

टाइपस्क्रिप्ट पुनरावृत्ति कथन

यह लेख टाइपस्क्रिप्ट में पुनरावृत्ति कथनों की व्याख्या करता है।

YouTube Video

TypeScript में for कथन

TypeScript में for कथन दोहराए जाने वाले कार्यों को पूरा करने के लिए एक बुनियादी लूप संरचना है। for लूप में, एक ही कोड ब्लॉक को निर्दिष्ट संख्या या शर्तों के आधार पर बार-बार निष्पादित किया जा सकता है।

मूल वाक्यविन्यास

1for (initialization; condition; update) {
2    // Code to execute repeatedly while the condition is true
3}
  • ** यह वह हिस्सा है जिसे लूप शुरू करने से पहले ही निष्पादित किया जाता है। ऐसे लूप काउंटर के रूप में चर प्रारंभ।
  • ** शर्त*: निर्धारित करता है कि पाश जारी है। यदि सच हो, तो लूप जारी रखें, और यदि झूठा, तो बाहर निकलें।
  • ** अद्यतन (update)*: प्रत्येक लूप के अंत में भाग लें और लूप काउंटर को अपडेट करें।

उदाहरण 1: मूल for लूप

नीचे दिए गए उदाहरण में, यह क्रम से 0 से 4 तक के संख्या को आउटपुट करता है।

1for (let i = 0; i < 5; i++) {
2    console.log("The value of i is: " + i);
3}
4// Outputs:
5// The value of i is: 0
6// The value of i is: 1
7// The value of i is: 2
8// The value of i is: 3
9// The value of i is: 4

उदाहरण 2: एक ऐरे के साथ for लूप

आप एक ऐरे के तत्वों को क्रम से प्रोसेस करने के लिए भी for लूप का उपयोग कर सकते हैं।

1let fruits: string[] = ["apple", "banana", "cherry"];
2
3for (let i = 0; i < fruits.length; i++) {
4    console.log("Fruit: " + fruits[i]);
5}
6// Outputs:
7// Fruit: apple
8// Fruit: banana
9// Fruit: cherry

उदाहरण 3: for-in लूप

for-in लूप का उपयोग किसी ऑब्जेक्ट की प्रॉपर्टीज या एक ऐरे के इंडेक्स पर क्रमवार इटरेट करने के लिए किया जाता है।

1let car = { brand: "Toyota", model: "Corolla", year: 2020 };
2
3for (let key in car) {
4    console.log(key + ": " + car[key]);
5}
6// Outputs:
7// brand: Toyota
8// model: Corolla
9// year: 2020

उदाहरण 4: for-of लूप

for-of लूप का उपयोग ऐरेस या स्ट्रिंग्स जैसे इटरेबल ऑब्जेक्ट्स से प्रत्येक तत्व का वैल्यू क्रम से प्राप्त करने के लिए किया जाता है।

1let colors: string[] = ["red", "green", "blue"];
2
3for (let color of colors) {
4    console.log("Color: " + color);
5}
6// Outputs:
7// Color: red
8// Color: green
9// Color: blue

उदाहरण 5: नेस्टेड for लूप

एक for लूप को दूसरे for लूप के भीतर उपयोग करना भी संभव है, जिसे नेस्टेड लूप कहा जाता है। यह आपको अन्य चीजों के साथ दोहरे लूप बनाने की अनुमति देता है।

 1for (let i = 0; i < 3; i++) {
 2    console.log("Outer loop i: " + i);
 3    for (let j = 0; j < 2; j++) {
 4        console.log("  Inner loop j: " + j);
 5    }
 6}
 7// Outputs:
 8// Outer loop i: 0
 9//   Inner loop j: 0
10//   Inner loop j: 1
11// Outer loop i: 1
12//   Inner loop j: 0
13//   Inner loop j: 1
14// Outer loop i: 2
15//   Inner loop j: 0
16//   Inner loop j: 1

सारांश

  • for कथन निर्दिष्ट गणना या शर्तों के आधार पर पुनरावृत्ति प्रक्रिया करता है।
  • for-in का उपयोग ऑब्जेक्ट की प्रॉपर्टीज या एक ऐरे के इंडेक्स को पुनः प्राप्त करने के लिए किया जाता है।
  • for-of का उपयोग ऐरेस जैसे इटरेबल ऑब्जेक्ट्स से तत्वों के मान प्राप्त करने के लिए किया जाता है।
  • जटिल पुनरावृत्ति प्रक्रिया नेस्टेड for लूप्स के साथ भी संभव है।

TypeScript में for कथन अन्य लूप्स के समान शक्तिशाली और लचीला पुनरावृत्ति प्रॉसेसिंग प्रदान करता है।

टाइपस्क्रिप्ट में वाइल स्टेटमेंट

टाइपस्क्रिप्ट में, while स्टेटमेंट एक लूप संरचना है जो तब तक दोहराव वाली प्रक्रिया को निष्पादित करता है जब तक निर्दिष्ट शर्त true होती है। for लूप की तरह, while लूप उन स्थितियों के लिए उपयुक्त है जहां पुनरावृत्ति की संख्या पूर्वनिर्धारित नहीं है, या जब आप किसी शर्त के आधार पर पुनरावृत्ति को नियंत्रित करना चाहते हैं।

मूल वाक्यविन्यास

1while (condition) {
2    // Code to execute repeatedly while the condition is true
3}
  • शर्त: वह शर्त जिसके तहत लूप निष्पादित होता है। लूप तब तक चलता रहता है जब तक यह शर्त true होती है, और यह तब रुक जाती है जब यह false हो जाती है।

उदाहरण 1: बेसिक while लूप

नीचे दिए गए उदाहरण में, यह तब तक i का मान आउटपुट करता रहता है जब तक i 5 से कम है।

 1let i: number = 0;
 2
 3while (i < 5) {
 4    console.log("The value of i is: " + i);
 5    i++;
 6}
 7// Outputs:
 8// The value of i is: 0
 9// The value of i is: 1
10// The value of i is: 2
11// The value of i is: 3
12// The value of i is: 4

इस उदाहरण में, लूप समाप्त हो जाता है जब i 5 या उससे अधिक हो जाता है क्योंकि शर्त false हो जाती है।

उदाहरण 2: अनंत लूप का उदाहरण

यदि while लूप की शर्त हमेशा true होती है, तो यह एक अनंत लूप बन सकता है। यह आमतौर पर प्रोग्राम को इच्छानुसार समाप्त होने में विफल कर देता है, इसलिए सावधानी बरतने की आवश्यकता है।

 1let x: number = 0;
 2
 3while (true) {
 4    console.log("The value of x is: " + x);
 5    x++;
 6    if (x >= 5) {
 7        break; // Exit the loop when the condition is met
 8    }
 9}
10// Outputs:
11// The value of x is: 0
12// The value of x is: 1
13// The value of x is: 2
14// The value of x is: 3
15// The value of x is: 4

आप break स्टेटमेंट का उपयोग शर्त पूरी होने पर बलपूर्वक लूप से बाहर निकलने के लिए कर सकते हैं।

उदाहरण 3: do-while लूप

do-while लूप एक संरचना है जिसमें लूप प्रक्रिया कम से कम एक बार निष्पादित होती है। चूंकि शर्त प्रक्रिया के बाद आंकी जाती है, प्रक्रिया कम से कम एक बार चलती है, भले ही शर्त false हो।

1let j: number = 5;
2
3do {
4    console.log("The value of j is: " + j);
5    j++;
6} while (j < 5);
7// Outputs: The value of j is: 5

इस उदाहरण में, j शुरू से 5 है, और j < 5 false है, लेकिन do-while लूप में, यह शर्त की परवाह किए बिना कम से कम एक बार चलता है।

सारांश

  • एक while लूप तब तक प्रक्रिया को दोहराता है जब तक शर्त true होती है।
  • यदि लूप समाप्ति शर्त स्पष्ट नहीं है, तो आपको अनंत लूप से सावधान रहने की आवश्यकता है।
  • do-while लूप सामान्य while लूप से भिन्न है क्योंकि प्रक्रिया कम से कम एक बार निष्पादित होती है।

टाइपस्क्रिप्ट में while स्टेटमेंट उन लूप प्रक्रियाओं के लिए उपयोगी है जिनमें पुनरावृत्ति की संख्या अनिश्चित है या जब गतिशील शर्त जांच की आवश्यकता होती है।

break और continue

आप लूप्स के भीतर break और continue का उपयोग कर सकते हैं।

  • break का उपयोग किसी लूप को समय से पहले समाप्त करने के लिए किया जाता है।
  • continue का उपयोग वर्तमान पुनरावृत्ति को छोड़कर अगले पुनरावृत्ति पर जाने के लिए किया जाता है।

break का उदाहरण

 1for (let i = 0; i < 10; i++) {
 2    if (i === 5) {
 3        break;  // Exits the loop when i is 5
 4    }
 5    console.log(i);
 6}
 7// Outputs 0, 1, 2, 3, 4
 8
 9let i = 0;
10
11while (i < 10) {
12    if (i === 5) {
13        break;  // Ends the loop when i is 5
14    }
15    console.log(i++);
16}
17// Outputs 0, 1, 2, 3, 4

इस मामले में, break तब निष्पादित होता है जब i 5 हो जाता है। परिणामस्वरूप, 0 से 4 तक की संख्याएँ प्रदर्शित की जाती हैं।

continue का उदाहरण

 1for (let i = 0; i < 5; i++) {
 2    if (i === 2) {
 3        continue;  // Skips when i is 2
 4    }
 5    console.log(i);
 6}
 7// Outputs 0, 1, 3, 4
 8
 9let i = 0;
10
11while (i < 5) {
12    i++;
13    if (i === 3) {
14        continue;  // Skips when i is 3
15    }
16    console.log(i);
17}
18// Outputs 1, 2, 4, 5

इस मामले में, continue तब निष्पादित होता है जब i 2 हो जाता है। परिणामस्वरूप, 2 को छोड़कर अन्य संख्याएँ दिखाए जाते हैं।

टाइपस्क्रिप्ट में नेस्टेड लूप्स

नेस्टेड लूप वह संरचना है जहां एक लूप को दूसरे लूप के भीतर उपयोग किया जाता है। टाइपस्क्रिप्ट में, for, while, और do-while जैसे लूप कॉन्स्ट्रकट्स का समर्थन किया जाता है। नेस्टेड लूप्स का उपयोग करके, आप द्वि-आयामी एरे (मैट्रिक्स) को प्रोसेस कर सकते हैं और कई शर्तों के आधार पर प्रोसेसिंग को सरल बना सकते हैं।

मूल वाक्यविन्यास

नेस्टेड लूप का मुख्य सिंटैक्स इस प्रकार है।

1for (let i: number = 0; i < n; i++) {
2  for (let j: number = 0; j < m; j++) {
3    // Processing for the inner loop
4  }
5}

बाहरी लूप के प्रत्येक निष्पादन के लिए, आंतरिक लूप अपनी सभी पुनरावृत्तियों को पूरा करता है। यह संरचना कई लूप्स या डेटा संरचनाओं को संभालने में बहुत उपयोगी है।

टाइपस्क्रिप्ट में नेस्टेड लूप का उदाहरण

दो-आयामी एरे का ट्रावर्सिंग

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

 1const matrix: number[][] = [
 2  [1, 2, 3],
 3  [4, 5, 6],
 4  [7, 8, 9]
 5];
 6
 7for (let row: number = 0; row < matrix.length; row++) {
 8  for (let col: number = 0; col < matrix[row].length; col++) {
 9    console.log(`matrix[${row}][${col}] = ${matrix[row][col]}`);
10  }
11}
12// Output
13// matrix[0][0] = 1
14// matrix[0][1] = 2
15// matrix[0][2] = 3
16// matrix[1][0] = 4
17// matrix[1][1] = 5
18// matrix[1][2] = 6
19// matrix[2][0] = 7
20// matrix[2][1] = 8
21// matrix[2][2] = 9

इस उदाहरण में, हम दो-आयामी एरे matrix को ट्रावर्स कर रहे हैं। बाहरी लूप पंक्तियों को संभालता है, और आंतरिक लूप स्तंभों को संभालता है, प्रत्येक तत्व को क्रम में प्रदर्शित करता है।

दो ऐरे का संयोजन

अगले कदम में, हम दो ऐरे के सभी संयोजनों की गणना का एक उदाहरण पेश करते हैं। उदाहरण के लिए, आप प्रत्येक ऐरे से एक तत्व ले सकते हैं और सभी संभव युग्मों को उत्पन्न कर सकते हैं।

 1const array1: string[] = ['A', 'B', 'C'];
 2const array2: number[] = [1, 2, 3];
 3
 4for (let i: number = 0; i < array1.length; i++) {
 5  for (let j: number = 0; j < array2.length; j++) {
 6    console.log(`Pair: (${array1[i]}, ${array2[j]})`);
 7  }
 8}
 9// Output
10// Pair: (A, 1)
11// Pair: (A, 2)
12// Pair: (A, 3)
13// Pair: (B, 1)
14// Pair: (B, 2)
15// Pair: (B, 3)
16// Pair: (C, 1)
17// Pair: (C, 2)
18// Pair: (C, 3)

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

तीनहरे लूप का उपयोग करके निर्देशांक उत्पन्न करना

उदाहरण के लिए, तीनहरे नेस्टेड लूप का उपयोग करके आप तीन-आयामी स्थान में निर्देशांक उत्पन्न कर सकते हैं।

 1for (let x: number = 0; x < 3; x++) {
 2  for (let y: number = 0; y < 3; y++) {
 3    for (let z: number = 0; z < 3; z++) {
 4      console.log(`Coordinate: (${x}, ${y}, ${z})`);
 5    }
 6  }
 7}
 8// Output
 9// Coordinate: (0, 0, 0)
10// Coordinate: (0, 0, 1)
11// Coordinate: (0, 0, 2)
12// ...
13// Coordinate: (2, 2, 1)
14// Coordinate: (2, 2, 2)

इस प्रकार, तीनहरे नेस्टेड लूप का उपयोग करके आप आसानी से तीन-आयामी स्थान में निर्देशांक उत्पन्न कर सकते हैं।

नेस्टेड लूप का प्रदर्शन

नेस्टेड लूप सुविधाजनक होते हैं, लेकिन जब लूप की गहराई बढ़ती है तो गणनात्मक लागत तेजी से बढ़ जाती है। उदाहरण के लिए, यदि बाहरी लूप की n पुनरावृत्तियाँ हैं और आंतरिक लूप की m पुनरावृत्तियाँ हैं, तो कुल पुनरावृत्तियों की संख्या n * m होगी। जब यह और अधिक नेस्टेड हो जाता है, तो गणनात्मक जटिलता तेजी से बढ़ती है, जिससे कार्यक्रम के प्रदर्शन पर प्रभाव पड़ सकता है।

तीन ऐरे को पार करते समय नीचे गणनात्मक जटिलताएँ दी गई हैं।

 1const array1: number[] = [1, 2, 3];
 2const array2: number[] = [4, 5, 6];
 3const array3: number[] = [7, 8, 9];
 4
 5for (let i: number = 0; i < array1.length; i++) {
 6  for (let j: number = 0; j < array2.length; j++) {
 7    for (let k: number = 0; k < array3.length; k++) {
 8      console.log(`Combination: (${array1[i]}, ${array2[j]}, ${array3[k]})`);
 9    }
10  }
11}

इस मामले में, आपको array1.length * array2.length * array3.length की गणना करनी होगी, जिसके परिणामस्वरूप सभी संयोजनों को प्रोसेस करने के लिए 3 * 3 * 3 = 27 पुनरावृत्तियाँ होंगी।

नेस्टेड लूप का अनुकूलन

नेस्टेड लूप का उपयोग करते समय, आप निम्नलिखित अनुकूलन पर विचार करके प्रदर्शन को सुधार सकते हैं।

  1. जल्द वापसी का परिचय दें: जब लक्ष्य प्राप्त हो जाए तो लूप को जल्दी समाप्त करें ताकि अनावश्यक पुनरावृत्तियों से बचा जा सके।
  2. लूप वेरिएबल्स को कैश करें: लूप के अंदर उपयोग किए गए वेरिएबल्स (विशेष रूप से लंबाई और श्रेणियाँ) के मान को पहले से कैश करें ताकि प्रत्येक बार गणना की लागत को कम किया जा सके।
  3. डेटा संरचनाओं को बदलें: ऐरे और ऑब्जेक्ट की संरचना को संशोधित करना विशिष्ट पुनरावृत्त प्रक्रियाओं को तेज करने में प्रभावी हो सकता है।

निष्कर्ष

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

आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।

YouTube Video