Hitri čas in ponovitev, medtem ko zanka (z primeri)

V tem članku se boste naučili ustvarjati in ponavljati zanke v programiranju Swift.

V prejšnjem članku smo izvedeli več o zanki for-in za izvajanje nabora nalog določeno število krat. V tem članku se boste naučili uporabljati whilein repeat… whilekot alternativo vhodni zanki, kadar število ponovitev ni znano.

Zanka while izvaja nabor stavkov, dokler pogoj ne postane false. Te vrste zank je najbolje uporabiti, če število ponovitev ni znano pred začetkom prve ponovitve. Swift ponuja dve vrsti zank while:

1. Hitro med zanko

Ta zanka oceni svoje stanje na začetku vsakega prehoda skozi zanko.

Sintaksa zanke while je:

 while (TestExpression) ( // statements )

Kako deluje zanka?

Je TestExpressionlogični izraz.

Če TestExpressionje vrednost ocenjena na true,

  • stavki znotraj zanke while se izvajajo.
  • in TestExpressionse ponovno oceni.

Ta postopek se nadaljuje, dokler se TestExpressionne oceni false. Če TestExpressionovrednoti do false, je zanka while prekinjena.

Diagram poteka zanke while

Primer 1: While Loop

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) print("outside of while loop")

Ko zaženete program, bo rezultat:

 Pretekli ste stopnjo 0 Pretekli ste stopnjo 1 Prešli ste stopnjo 2 Prešli ste stopnjo 3 Prešli ste stopnjo 4 Prešli ste stopnjo 5 zunaj zanke while 

V zgornjem programu sta spremenljivka currentLevel in finalLevel inicializirana na 0, konstantna gameCompleted pa na true.

V vsaki ponovitvi zanke while preveri stanje currentLevel <= finalLevel. Če se stanje vrne true, se stavki v zanki while izvedejo, sicer se zanka konča.

Izvedbeni koraki
Ponavljanje Pogoj (currentLevel <= finalLevel) Izhod
1. 0 <= 5 (resnično) Pretekli ste stopnjo 0
2. 1 <= 5 (true) Prešli ste 1. stopnjo
3. 2 <= 5 (resnično) Prešli ste 2. stopnjo
4. 3 <= 5 (resnično) Prešli ste 3. stopnjo
5. 4 <= 5 (resnično) Pretekli ste 4. stopnjo
6. 5 <= 5 (resnično) Pretekli ste 5. stopnjo
7. 6 <= 5 (napačno) zunaj zanke while

2. Ponavljajte med zanko

Ta zanka oceni svoje stanje na koncu vsakega prehoda skozi zanko. Ponovitev… while je podobna zanki while z eno ključno razliko. Telo zanke repeat … while se izvede enkrat, preden se preveri testni izraz.

Sintaksa zanke repeat … while je:

 repeat ( // statements… ) while (testExpression)

Kako ponoviti… medtem ko zanka deluje?

Telo zanke repeat … while se izvede enkrat (pred preverjanjem testnega izraza). Šele nato se preveri testExpression.

Če testExpression oceni na true, se izvršijo stavki znotraj telesa zanke in testExpression se ponovno oceni. Ta postopek se nadaljuje, dokler se testExpression ne oceni na false.

Ko je testExpression false, se ponovitev… while konča.

Diagram poteka ponavljanja … medtem ko Loop

Primer 2: Ponovite, medtem ko zanko

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) while (currentLevel <= finalLevel) print("outside of repeat while loop") 

Ko zaženete program, bo rezultat:

 Pretekli ste stopnjo 0 Pretekli ste stopnjo 1 Prešli ste raven 2 Prešli ste raven 3 Prešli ste raven 4 Prešli ste raven 5 zunaj ponavljajoče se zanke while 

V zgornjem primeru se stavki znotraj zanke prvič izvršijo. In za naslednjo ponovitev preveri stanje currentLevel <= finalLevel.

Če se stanje vrne true, se stavki v zanki while izvedejo, sicer se zanka konča.

Izvedbeni koraki
Ponavljanje Pogoj (currentLevel <= finalLevel) Izhod
1. 0 <= 5 (resnično) Pretekli ste stopnjo 0
2. 1 <= 5 (true) Prešli ste 1. stopnjo
3. 2 <= 5 (resnično) Prešli ste 2. stopnjo
4. 3 <= 5 (resnično) Prešli ste 3. stopnjo
5. 4 <= 5 (resnično) Pretekli ste 4. stopnjo
6. 5 <= 5 (resnično) Pretekli ste 5. stopnjo
7. 6 <= 5 (napačno) zunaj ponovitve while zanke

Čeprav imata oba whilein repeat whilezanka enake korake izvedbe, se pogoj currentLevel <= finalLevel v repeat whilezanki izvede šele po izvedbi stavkov znotraj nje.

Toda v while, stanje se preveri na začetku, preden se izvršijo stavki v njem.

3. Neskončno, medtem ko zanka

Če testni izraz nikoli ne izračuna false, se telo zanke whilein repeat… whilezanke izvede neštetokrat.

Primer 3: Neskončno, medtem ko zanka

 while (true) ( print("Hello, World!") )
 repeat ( print("Hello, World!") ) while (true)

Ko zaženete program, bo rezultat:

Pozdravljen, svet! Pozdravljen, svet!…

Ko zaženete program, obe zanki izvajata print("Hello, World!")stavek neštetokrat. Torej, vidite neprekinjen izhod Pozdravljeni, svet! v konzoli.

Zanimive Članki...