Kiire sisselülitamise silmus: kuidas seda kasutada ja miks?

Selles artiklis saate teada for-in silmusest, selle kasutamise juhtudest ja variantidest.

Sisselülitamise tsükleid kasutatakse teatud hulga ülesannete komplekti käivitamiseks. Need tsüklid korduvad mis tahes järjestuse, näiteks massiivi üksuste, vahemiku või stringi märkide vahel.

Samuti kasutame sisselülitamise tsüklit, et teha kindla aja jooksul korduvaid protsesse.

Miks me vajame sisselülitamise tsüklit?

Kujutage ette, et keegi käskis teil kirjutada programmi, mis väljastab tere, maailm! ekraanil. Teie lahendus on:

 print ("Tere, maailm!")

Mis oleks, kui nad muudaksid meelt ja paluksid teil kirjutada programm, mis väljastab tere, maailm! viis korda ekraanil … Loopi teadmata võib teie lahendus olla:

 print ("Tere, maailm!") print ("Tere, maailm!") print ("Tere, maailm!") Trüki ("Tere, maailm!") Trüki ("Tere, maailm!")

Hmm. Tundub, et sama töö tegemiseks on viis korda sarnase koodi kirjutamine aeganõudev. Kui jah, siis mida teeksite, kui keegi paluks teil kirjutada programm, mis väljastab tere, maailm! ekraanil sada või isegi miljonit korda?

Üks naiivne lahendus on printavalduse kirjutamine määratud arv kordi. Tundub hullumeelsena, eks? Kuid selleks on parem lahendus, kasutades for-insilmusid, millel on vähe koodiridu:

 for i in 1… 100 ( //outputs Hello world for 100 times in the screen print("Hello, World!") ) 

Ärge muretsege süntaksi pärast, me uurime seda allpool.

Sisselülitamise silmus

Swiftis saate luua for in loopi järgmiselt:

 jaoks () 

Ülaltoodud tsükkel kordub vahemikus ja meil on juurdepääs igale vahemikust tagastatud elemendile muutujana. Kui te ei tea vahemiku kohta, võite vaadata artiklit: Kiired vahemikud.

Kuidas see töötab?

  • Itereeritav järjestus on a.
  • A väärtuseks määratakse vahemiku esimene number ja aasas olevad laused täidetakse.
  • Pärast lause täitmist värskendatakse seda, et see sisaldaks teist väärtust ja lause täidetaks uuesti.
  • See protsess kestab kuni vahemiku lõpuni jõuab ja silmus peatub.

Näide 1: Kuidas sisse lülitatud silmus töötab Swiftis

 for i in 1… 3 ( print("Hello world!. Value is (i)") ) 

Programmi käivitamisel on väljund järgmine:

Tere, Maailm!. Väärtus on 1 Tere maailm !. Väärtus on 2 Tere maailm !. Väärtus on 3

Ülaltoodud programmis on itereeritav järjestus vahemikus 1 kuni 3.

I väärtuseks määratakse vahemiku (1) esimene number ja ajakohastatakse igal iteratsioonil vahemiku järgmise numbriga. See protsess kestab kuni vahemiku (3) lõpuni.

Sisselülituse tsükli täitmise etapid
Kordus Vahemikust (i) tagastatud väärtus Väljund
1 1 Tere, Maailm!. Väärtus on 1
2 2 Tere, Maailm!. Väärtus on 2
3 3 Tere, Maailm!. Väärtus on 3

Vahemiku väärtuse loobumine sisselülitamise silmus

Kui teil ei ole silmuse sees asuvat vahemiku väärtust, võite Swiftis _(allakriipsutada) kasutada järgmist:

 _ jaoks asukohas () 

Näide 2: vahemiku väärtuse loobumine sisselülitamise tsüklis

 // This example neglects value and uses half open range operator for _ in 1… <3 ( print("Hello world!") ) 

Programmi käivitamisel on väljund järgmine:

Tere, Maailm! Tere, Maailm!

Ülaltoodud programmis on itereeritav järjestus vahemikus 1 kuni 2, kuna kasutatakse poolavatud vahemikuoperaatorit (… <), mis hõlmab alumist piiri (1), kuid mitte ülemist piiri (3).

_jätab väärtuse vahemikust (1) tähelepanuta ja printimisavaldus täidetakse. Järgmiseks iteratsiooniks kutsutakse prindilauset uuesti ja protsess lõpeb, kuna 2 on vahemiku viimane väärtus.

Vahemiku väärtusteta sisselülituse tsükli täitmise etapid
Kordus Väärtus tagastati vahemikust Väljund
1 Visati ära Tere, Maailm!
2 Visati ära Tere, Maailm!

sisselülitamise silmus fikseeritud intervallide jaoks, kasutades sammu

Kui soovite tsüklit, mis suurendab igas iteratsioonis mõne fikseeritud väärtuse võrra, peate vahemiku asemel kasutama sammu meetodit.

Näide 3: sisselülitamise silmus, kasutades sammumeetodit

 let interval = 2 for i in stride(from: 1, to: 10, by: interval) ( print(i) ) 

Programmi käivitamisel on väljund järgmine:

 1 3 5 7 9 

Ülaltoodud programmis stridetagastab funktsioon arvude järjestuse: 1, 3, 5, 7, 9.

I väärtuseks määratakse jada esimene number (1) ja käivitatakse tsükli sees olev väljatrükk, mis väljastab konsoolis "1".

Pärast lause täitmist värskendatakse i väärtust teisele väärtusele (3) ja prindilauset kutsutakse uuesti. See protsess jätkub seni, kuni juurdepääsetakse järjestuse kõigile elementidele.

Sisselülituse tsükli täitmise sammud, kasutades sammu
Väärtus Tingimus (väärtus <lõpp) i (väljund)
1 1 <10 (tõene) 1
1 + 2 = 3 3 <10 (tõene) 3
1 + 2 * 2 = 5 5 <10 (tõene) 5
1 + 3 * 2 = 7 7 <10 (tõene) 7
1 + 4 * 2 = 9 9 <10 (tõene) 9
1 + 5 * 2 = 11 11 <10 (vale) Peatub

Kuidas pääseda sisse-sisselülituse abil kollektsiooni elementidele?

Oletame, et teil on allpool toodud massiivi stringe. Kui te ei tea massiivi kohta, mõelge massiivist kui ühest konteinerist, kuhu saab salvestada rohkem kui ühte väärtust. Üksikasjalikuma selgituse leiate teemast Swift Arrays.

 laske programmeerimise keeled = ("Swift", "Java", "Go", "JavaScript", "Kotlin", "Python")

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).

väärtuseks määratakse stringi esimene märk ja seda kontrollitakse tingimusega kus. Kui tingimus naaseb true, käivitatakse tsükli sees olev lause (printimisavaldus), mis väljastab konsoolis "I".

Pärast lause täitmist värskendatakse väärtust stringi järgmisele märgile ja kontrollitakse uuesti tingimust. Kui tingimus naaseb false, ei käivita see plokki ja väärtus värskendatakse järgmisele märgile.

See protsess jätkub kuni stringi viimase tähemärgi juurde pääsemiseni.

Filtreerimine sisselülituse tsükli täitmise sammude abil
Kordus väärtus väärtus! = „!” Väljund
1 Mina tõsi Mina
2 tõsi
3 S tõsi S
4 w tõsi w
5 i tõsi i
6 f tõsi f
7 t tõsi t
8 ! vale

Huvitavad Artiklid...