Brzo i ponavljajte dok petlja (s primjerima)

U ovom ćete članku naučiti stvarati while i ponavljati… while petlje u Swift programiranju.

U prethodnom smo članku saznali o petlji for-in za pokretanje skupa zadataka određeni broj puta. U ovom ćete članku naučiti koristiti whilei repeat… whilekao alternativu for-in petlji kada je broj iteracija nepoznat.

Petlja while izvršava skup naredbi dok uvjet ne postane false. Ovakve se petlje najbolje koriste kada broj iteracija nije poznat prije početka prve iteracije. Swift nudi dvije vrste while petlji:

1. Brzo dok petljate

Ova petlja procjenjuje svoje stanje na početku svakog prolaska kroz petlju.

Sintaksa while petlje je:

 while (TestExpression) ( // statements )

Kako while petlja radi?

To TestExpressionje logički izraz.

Ako TestExpressionse procjenjuje na true,

  • izvršavaju se izrazi unutar while petlje.
  • i TestExpressionponovno se ocjenjuje.

Ovaj postupak traje sve dok se TestExpressionne ocijeni false. Ako TestExpressionevaluira do false, petlja while prestaje.

Dijagram toka while Loop

Primjer 1: Dok petlja

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

Kada pokrenete program, izlaz će biti:

 Prešli ste nivo 0 Prošli ste nivo 1 Prošli ste nivo 2 Prošli ste nivo 3 Prošli ste nivo 4 Prošli ste nivo 5 izvan while petlje 

U gornjem programu, varijabla currentLevel i finalLevel inicijaliziraju se na 0, a konstantna gameCompleted inicijalizira na true.

U svakoj iteraciji while petlje provjerava stanje currentLevel <= finalLevel. Ako se uvjet vrati true, naredbe unutar while petlje se izvršavaju, inače se petlja završava.

Koraci izvršenja
Iteracija Stanje (currentLevel <= finalLevel) Izlaz
1 0 <= 5 (točno) Prešli ste nivo 0
2 1 <= 5 (točno) Prošli ste nivo 1
3 2 <= 5 (točno) Prošli ste razinu 2
4 3 <= 5 (točno) Prošli ste nivo 3
5 4 <= 5 (točno) Prošli ste nivo 4
6 5 <= 5 (točno) Prošli ste nivo 5
7 6 <= 5 (netačno) izvan while petlje

2. Ponavljajte dok petljate

Ova petlja procjenjuje svoje stanje na kraju svakog prolaska kroz petlju. Ponavljanje … while petlja slična je while petlji s jednom ključnom razlikom. Tijelo repeat … while petlje izvršava se jednom prije provjere testnog izraza.

Sintaksa loop … while je:

 repeat ( // statements… ) while (testExpression)

Kako ponoviti … dok petlja radi?

Tijelo ponavljanja… while petlja izvršava se jednom (prije provjere testnog izraza). Tek tada se provjerava testExpression.

Ako se testExpression procijeni na true, izvršavaju se izrazi unutar tijela petlje, a testExpression se ponovno procjenjuje. Ovaj se postupak nastavlja dok se testExpression ne procijeni na false.

Kada je testExpression false, ponavljanje… while petlja se završava.

Dijagram toka ponavljanja … dok se ponavlja

Primjer 2: Ponovite dok petlja

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

Kada pokrenete program, izlaz će biti:

 Prešli ste nivo 0 Prošli ste nivo 1 Prošli ste nivo 2 Prošli ste nivo 3 Prošli ste nivo 4 Prošli ste nivo 5 izvan ponavljanja while petlje 

U gornjem primjeru se prvi put izvršavaju izrazi unutar petlje. I za sljedeću iteraciju provjerava stanje currentLevel <= finalLevel.

Ako se uvjet vrati true, naredbe unutar while petlje se izvršavaju, inače se petlja završava.

Koraci izvršenja
Iteracija Stanje (currentLevel <= finalLevel) Izlaz
1 0 <= 5 (točno) Prešli ste nivo 0
2 1 <= 5 (točno) Prošli ste nivo 1
3 2 <= 5 (točno) Prošli ste razinu 2
4 3 <= 5 (točno) Prošli ste nivo 3
5 4 <= 5 (točno) Prošli ste nivo 4
6 5 <= 5 (točno) Prošli ste nivo 5
7 6 <= 5 (netačno) izvan ponavljanja while petlje

Iako su obje whilete repeat whilepetlje imaju iste korake izvršenja, stanje currentLevel <= finalLevel na repeat whilepetlji izvršava tek nakon izvršenja izjave unutar njega.

Ali u while, stanje se provjerava na početku prije izvođenja naredbi unutar njega.

3. Beskonačno dok petlja

Ako se testni izraz nikad ne izračuna false, tijelo whilei repeat… whilepetlje izvršava se neograničen broj puta.

Primjer 3: Beskonačno dok petlja

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

Kada pokrenete program, izlaz će biti:

Pozdrav svijete! Pozdrav svijete!…

Kada pokrenete program, obje petlje izvršavaju print("Hello, World!")naredbu beskonačno mnogo puta. Dakle, možete vidjeti kontinuirani izlaz Zdravo, svijete! u konzoli.

Zanimljivi članci...