इस लेख में, आप इन-लूप, इसके उपयोग मामलों और वेरिएंट के बारे में जानेंगे।
फॉर लूप्स का उपयोग निश्चित समय के लिए कार्यों के एक सेट को चलाने के लिए किया जाता है। ये किसी भी क्रम में किसी सरणी, श्रेणी, या किसी स्ट्रिंग में वर्ण जैसे किसी भी अनुक्रम पर पुनरावृत्त करते हैं।
हम निश्चित समय के लिए कुछ दोहराए जाने वाली प्रक्रियाओं को करने के लिए फॉर-इन लूप का उपयोग करते हैं।
हमें लूप की आवश्यकता क्यों है?
कल्पना कीजिए कि किसी ने आपको एक कार्यक्रम लिखने के लिए कहा, जो हैलो, वर्ल्ड को आउटपुट करता है! स्क्रीन में। आपका समाधान होगा:
प्रिंट ("हैलो, वर्ल्ड!")
क्या होगा अगर, उन्होंने अपना मन बदल दिया और आपको एक कार्यक्रम लिखने के लिए कहा, जो हैलो, वर्ल्ड आउटपुट करता है पांच बार स्क्रीन में … लूप के ज्ञान के बिना, आपका समाधान हो सकता है:
प्रिंट ("हैलो, वर्ल्ड!") प्रिंट ("हैलो, वर्ल्ड!") प्रिंट ("हैलो, वर्ल्ड!") प्रिंट ("हैलो, वर्ल्ड!") प्रिंट ("हैलो, वर्ल्ड!"
हम्म। एक ही काम को पूरा करने के लिए पांच बार समान कोड लिखने में समय लगता है। यदि ऐसा है, तो आप क्या करेंगे यदि कोई आपसे एक कार्यक्रम लिखने का अनुरोध करता है जो हैलो, वर्ल्ड आउटपुट करता है! सौ या लाख बार स्क्रीन में?
एक भोली समाधान print
दिए गए समय की संख्या के लिए कथन लिखना है । पागल लगता है, है ना? लेकिन for-in
कोड के कुछ लाइनों के साथ छोरों के उपयोग के साथ इसके लिए एक बेहतर समाधान है :
for i in 1… 100 ( //outputs Hello world for 100 times in the screen print("Hello, World!") )
वाक्य रचना के बारे में चिंता न करें, हम इसे नीचे देखने जा रहे हैं।
लूप सिंटैक्स में फॉर
आप स्विफ्ट के लिए एक लूप बना सकते हैं जैसे:
में लिए ( )
उपरोक्त लूप एक सीमा पर पुनरावृत्त होता है और हम चर में लौटे प्रत्येक तत्व को एक्सेस कर सकते हैं। यदि आप रेंज के बारे में नहीं जानते हैं, तो आप लेख की जांच कर सकते हैं: स्विफ्ट रेंज।
यह काम किस प्रकार करता है?
- इस पर प्रसारित होने वाला अनुक्रम a है।
- रेंज में पहले नंबर पर सेट किया जाता है, और लूप के अंदर स्टेटमेंट निष्पादित किए जाते हैं।
- स्टेटमेंट निष्पादित होने के बाद, दूसरी वैल्यू को समाहित करने के लिए अपडेट किया जाता है और स्टेटमेंट को फिर से निष्पादित किया जाता है।
- यह प्रक्रिया तब तक जारी रहती है जब तक कि सीमा समाप्त नहीं हो जाती और लूप बंद हो जाता है।
उदाहरण 1: स्विफ्ट में लूप-इन लूप कैसे काम करता है
for i in 1… 3 ( print("Hello world!. Value is (i)") )
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:
नमस्ते दुनिया!। मान 1 नमस्ते दुनिया है!। मान 2 है नमस्ते दुनिया !. मान 3 है
उपर्युक्त कार्यक्रम में, अनुक्रम को अधिक से अधिक प्रसारित किया जाना 1 से 3 तक की सीमा है।
I का मान श्रेणी (1) में पहले नंबर पर सेट है, और प्रत्येक पुनरावृत्ति पर सीमा के अगले नंबर पर अपडेट किया गया है। यह प्रक्रिया तब तक जारी रहती है जब तक कि सीमा (3) का अंत नहीं हो जाता।
लूप निष्पादन चरणों के लिएIteration | मूल्य सीमा (i) से लौटा | आउटपुट |
---|---|---|
1 है | 1 है | नमस्ते दुनिया!। मान 1 है |
२ | २ | नमस्ते दुनिया!। मान 2 है |
३ | ३ | नमस्ते दुनिया!। मान 3 है |
फ़ॉर-इन लूप में श्रेणी मान को छोड़ना
यदि आपके पास लूप के अंदर रेंज मान के लिए कोई उपयोग नहीं है, तो आप _
स्विफ्ट में (अंडरस्कोर) का उपयोग करना छोड़ सकते हैं :
में लिए ( )
उदाहरण 2: लूप के लिए रेंज मान को छोड़ना
// This example neglects value and uses half open range operator for _ in 1… <3 ( print("Hello world!") )
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:
हैलो वर्ल्ड! हैलो वर्ल्ड!
उपर्युक्त कार्यक्रम में, अनुक्रम को अधिक से अधिक प्रसारित किया जा रहा है, यह आधे खुले रेंज ऑपरेटर (… <) के उपयोग के कारण 1 से 2 तक की सीमा है, जिसमें निम्न बाउंड (1) शामिल है, लेकिन ऊपरी बाउंड (3) नहीं है।
_
रेंज (1) से मूल्य को दर्शाता है और प्रिंट स्टेटमेंट निष्पादित होता है। अगले विवरण के लिए प्रिंट स्टेटमेंट को फिर से बुलाया जाता है और यह प्रक्रिया समाप्त हो जाती है क्योंकि 2 रेंज में अंतिम मान है।
Iteration | मान श्रेणी से लौटाया गया | आउटपुट |
---|---|---|
1 है | बाहर किया हुआ | हैलो वर्ल्ड! |
२ | बाहर किया हुआ | हैलो वर्ल्ड! |
फॉर-लूप में स्ट्राइड का उपयोग करके निश्चित अंतराल के लिए
यदि आप एक लूप चाहते हैं जो प्रत्येक पुनरावृत्ति में कुछ निश्चित मूल्य से बढ़ाता है, तो रेंज के बजाय, आपको स्ट्राइड विधि का उपयोग करना होगा।
उदाहरण 3: स्ट्राइड विधि का उपयोग करते हुए लूप के लिए
let interval = 2 for i in stride(from: 1, to: 10, by: interval) ( print(i) )
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:
१ ३ ५ 9 ९
उपरोक्त कार्यक्रम में, stride
फ़ंक्शन संख्याओं का क्रम लौटाता है: 1, 3, 5, 7, 9।
I का मान अनुक्रम के पहले नंबर (1) पर सेट है, और लूप के अंदर प्रिंट स्टेटमेंट निष्पादित किया गया है जो कंसोल में "1" आउटपुट करता है।
स्टेटमेंट निष्पादित होने के बाद, i का मान किसी अन्य मान (3) में अपडेट किया जाता है और प्रिंट स्टेटमेंट को फिर से कॉल किया जाता है। यह प्रक्रिया तब तक जारी रहती है जब तक अनुक्रम के सभी तत्व एक्सेस नहीं हो जाते।
स्ट्रिप का उपयोग करके लूप निष्पादन चरणों के लिएमान | शर्त (मान <अंत) | मैं (आउटपुट) |
---|---|---|
1 है | 1 <10 (सच) | 1 है |
1 + 2 = 3 | 3 <10 (सच) | ३ |
1 + 2 * 2 = 5 | 5 <10 (सच) | ५ |
1 + 3 * 2 = 7 | 7 <10 (सच) | । |
1 + 4 * 2 = 9 | 9 <10 (सच) | ९ |
1 + 5 * 2 = 11 | 11 <10 (झूठा) | रुक जाता है |
लूप-इन लूप का उपयोग करके संग्रह के तत्वों का उपयोग कैसे करें?
मान लें कि आपके पास नीचे के रूप में स्ट्रिंग्स की एक सरणी है। यदि आप सरणी के बारे में नहीं जानते हैं, तो सरणी को एक एकल कंटेनर के रूप में सोचें जो एक से अधिक मूल्यों को संग्रहीत कर सकता है। अधिक विस्तृत विवरण के लिए, स्विफ्ट एरे देखें।
प्रोग्रामिंग लैंग्वेजेज = ("स्विफ्ट", "जावा", "गो", "जावास्क्रिप्ट", "कोटलिन", "पायथन")
What if someone told you to print all the programming languages?
A way is to access those elements using index as programmingLanguages(0), programmingLanguages(1)
… and so on till you get all the elements. But this is too tedious.
Here comes for-in loop to the rescue. You can iterate using for in loop as:
Example 4: Accessing elements of an array (collection) using for-in loop
let programmingLanguages = ("Swift", "Java", "Go", "JavaScript", "Kotlin", "Python") for language in programmingLanguages ( print(language) )
When you run the program, the output will be:
Swift Java Go JavaScript Kotlin Python
In the above program, the sequence being iterated over is an array of strings.
The value of language is set to the first element of the array, and the print statement inside the loop is executed which outputs "Swift" in the console.
After the statement is executed, language is updated with the next element of the array and the print statement is called again. This process continues until the last element of array is accessed.
Example 5: Accessing elements of a string (collection) using for-in loop
Since, in Swift, strings are also collection, you can access each character in a string using for loop.
for value in "I♥Swift!" ( print(value) )
When you run the program, the output will be:
I ♥ S w i f t !
How to access indices of a collection using for-in loop?
If you want to access the index of the array (position of elements in an array i.e. 0, 1, 2), you need to use enumerated
method as:
Example 6: Accessing indices of an array using for-in loop
let programmingLanguages = ("Swift", "Java", "Go", "JavaScript", "Kotlin", "Python") for (index, language) in programmingLanguages.enumerated() ( print("(index):(language)") )
When you run the program, the output will be:
0:Swift 1:Java 2:Go 3:JavaScript 4:Kotlin 5:Python
Here, the enumerated method returns a tuple (Int
, String
) composed of the index (Int
) and the value (String
) for each item in the array. For example: (0, Swift), (1, Java)…
Using for-in
loop, you can access these items in a tuple one by one. If you don't know about Tuple, you can simply think it as a container that can hold value of different types. For more detailed explanation, see Swift Tuples .
How to filter elements using where clause in a for-in loop?
You can also filter contents from for in loop using where clause as
for value in "I♥Swift!" where value != "!" ( print(value) //removes exclamation sign )
When you run the program, the output will be:
I ♥ S w i f t
In the above program, the sequence being iterated over is string (collection of characters).
मान स्ट्रिंग के पहले वर्ण पर सेट किया गया है और उसे उस स्थिति के साथ जांचा गया है। यदि स्थिति वापस आती है true
, तो लूप (प्रिंट स्टेटमेंट) के अंदर का ब्लॉक निष्पादित किया जाता है जो कंसोल में "I" आउटपुट करता है।
कथन निष्पादित होने के बाद, मान स्ट्रिंग के अगले वर्ण पर अद्यतन किया जाता है और फिर से स्थिति की जाँच की जाती है। यदि स्थिति लौटती है false
, तो यह ब्लॉक को निष्पादित नहीं करता है और मान अगले वर्ण पर अपडेट किया जाता है।
यह प्रक्रिया तब तक जारी रहती है जब तक कि स्ट्रिंग का अंतिम वर्ण एक्सेस नहीं हो जाता।
फ़िल्टर के लिए इन-लूप निष्पादन चरणों का उपयोग करेंIteration | मान | मान! = "" | आउटपुट |
---|---|---|---|
1 है | मैं | सच | मैं |
२ | ♥ | सच | ♥ |
३ | एस | सच | एस |
४ | w | सच | w |
५ | मैं | सच | मैं |
६ | च | सच | च |
। | टी | सच | टी |
। | ! | असत्य |