Swift while a opakujte while Loop (s príkladmi)

V tomto článku sa naučíte vytvárať cykly while a opakovať … while v programovaní Swift.

V predchádzajúcom článku sme sa dozvedeli o slučke for-in na vykonávanie množiny úloh viackrát. V tomto článku sa naučíte používať whilea repeat… whileako alternatívu vstupnú slučku, keď počet iterácií nie je známy.

Smyčka while vykonáva množinu príkazov, kým sa nestane podmienkou false. Tieto druhy slučiek sa najlepšie používajú, keď počet iterácií nie je známy pred začiatkom prvej iterácie. Swift poskytuje dva druhy cyklov while:

1. Počas slučky posúvajte prstom

Táto slučka vyhodnocuje jej stav na začiatku každého prechodu slučkou.

Syntax cyklu while je:

 while (TestExpression) ( // statements )

Ako funguje slučka while?

The TestExpressionje boolovský výraz.

V prípade, že TestExpressionje vyhodnotená true,

  • sú vykonávané príkazy vo vnútri cyklu while.
  • a TestExpressionznova sa vyhodnotí.

Tento proces pokračuje, kým TestExpressionsa vyhodnotí false. Ak sa TestExpressionvyhodnotí false, kým je slučka ukončená.

Vývojový diagram while Loop

Príklad 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")

Po spustení programu bude výstup:

 Prešli ste úrovňou 0 Prešli ste úrovňou 1 Prešli ste úrovňou 2 Prešli ste úrovňou 3 Prešli ste úrovňou 4 Prešli ste úrovňou 5 mimo slučky while 

Vo vyššie uvedenom programe sú premenné currentLevel a finalLevel inicializované na 0 a konštantná gameCompleted je inicializovaná na true.

V každej iterácii cyklu while kontroluje stav currentLevel <= finalLevel. Ak sa podmienka vráti true, vykonajú sa príkazy vo vnútri cyklu while, inak sa cyklus ukončí.

Kroky vykonania
Iterácia Podmienka (currentLevel <= finalLevel) Výkon
1 0 <= 5 (pravda) Prešli ste úrovňou 0
2 1 <= 5 (pravda) Prešli ste úrovňou 1
3 2 <= 5 (pravda) Prešli ste úrovňou 2
4 3 <= 5 (pravda) Prešli ste úrovňou 3
5 4 <= 5 (pravda) Prešli ste 4. úrovňou
6 5 <= 5 (true) Prešli ste 5. úrovňou
7 6 <= 5 (nepravdivé) mimo slučky while

2. Opakujte cyklus Loop

Táto slučka vyhodnocuje jej stav na konci každého prechodu cez slučku. Smyčka opakovania… while je podobná cyklu while s jedným kľúčovým rozdielom. Telo slučky repeat… while sa vykoná raz pred kontrolou testovacieho výrazu.

Syntax cyklu opakovania … zatiaľ čo je:

 repeat ( // statements… ) while (testExpression)

Ako funguje opakovanie… kým funguje slučka?

Telo slučky repeat… while sa vykoná raz (pred kontrolou testovacieho výrazu). Až potom sa skontroluje testExpression.

Ak je testExpression vyhodnotený ako true, vykonajú sa príkazy v tele cyklu a testExpression sa vyhodnotí znova. Tento proces pokračuje, kým sa testExpression nevyhodnotí false.

Keď je testExpression false, slučka repeat… while sa ukončí.

Vývojový diagram opakovania … zatiaľ čo slučka

Príklad 2: Opakujte krok Loop

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

Po spustení programu bude výstup:

 Prešli ste úrovňou 0 Prešli ste úrovňou 1 Prešli ste úrovňou 2 Prešli ste úrovňou 3 Prešli ste úrovňou 4 Prešli ste úrovňou 5 mimo opakovania while 

Vo vyššie uvedenom príklade sa po prvýkrát vykonajú príkazy vnútri slučky. A pri ďalšej iterácii skontroluje stav currentLevel <= finalLevel.

Ak sa podmienka vráti true, vykonajú sa príkazy vo vnútri cyklu while, inak sa slučka ukončí.

Kroky vykonania
Iterácia Podmienka (currentLevel <= finalLevel) Výkon
1 0 <= 5 (pravda) Prešli ste úrovňou 0
2 1 <= 5 (pravda) Prešli ste úrovňou 1
3 2 <= 5 (pravda) Prešli ste úrovňou 2
4 3 <= 5 (pravda) Prešli ste úrovňou 3
5 4 <= 5 (pravda) Prešli ste 4. úrovňou
6 5 <= 5 (true) Prešli ste 5. úrovňou
7 6 <= 5 (nepravdivé) mimo slučky while while

Aj keď majú oba cykly whilea repeat whilecyklus rovnaké kroky vykonania, podmienka currentLevel <= finalLevel v repeat whilecykle sa vykoná až po vykonaní príkazov v ňom.

Ale v while, podmienka je skontrolovaná na začiatku pred vykonaním príkazov v nej.

3. Nekonečné, zatiaľ čo slučka

Ak sa testovací výraz nikdy nevyhodnotí false, telo whilea repeat… whileslučka sa vykonajú nekonečne veľa krát.

Príklad 3: Nekonečné, kým je slučka

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

Po spustení programu bude výstup:

Ahoj, svet! Ahoj, svet!…

Keď spustíte program, obe slučky vykonajú print("Hello, World!")príkaz nekonečne veľa krát. Takže môžete vidieť nepretržitý výstup Dobrý deň, svet! v konzole.

Zaujímavé články...