Swift while a opakujte while Loop (With examples)

V tomto článku se naučíte vytvářet cykly while a opakovat… while v programování Swift.

V předchozím článku jsme se dozvěděli o smyčce for-in pro spuštění sady úkolů pro určitý počet opakování. V tomto článku se naučíte používat whilea repeat… whilejako alternativu smyčky for-in, když není znám počet iterací.

Smyčka while provádí sadu příkazů, dokud se nestane podmínkou false. Tyto druhy smyček se nejlépe používají, když není znám počet iterací před začátkem první iterace. Swift poskytuje dva druhy smyček while:

1. Swift, zatímco Loop

Tato smyčka vyhodnocuje svůj stav na začátku každého průchodu smyčkou.

Syntaxe while smyčky je:

 while (TestExpression) ( // statements )

Jak funguje smyčka while?

The TestExpressionje booleovský výraz.

V případě, že TestExpressionje vyhodnocena true,

  • jsou prováděny příkazy uvnitř smyčky while.
  • a TestExpressionznovu se vyhodnotí.

Tento proces pokračuje, dokud TestExpressionnení vyhodnocen false. Pokud se TestExpressionvyhodnotí false, zatímco smyčka je ukončena.

Vývojový diagram while Loop

Pří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")

Když spustíte program, výstup bude:

 Prošli jste úrovní 0 Prošli jste úrovní 1 Prošli jste úrovní 2 Prošli jste úrovní 3 Prošli jste úrovní 4 Prošli jste úrovní 5 mimo smyčku while 

Ve výše uvedeném programu se proměnná currentLevel a finalLevel inicializuje na 0 a konstantní gameCompleted se inicializuje na true.

V každé iteraci cyklu while kontroluje podmínku currentLevel <= finalLevel. Pokud se podmínka vrátí true, jsou příkazy uvnitř while smyčky provedeny, jinak smyčka končí.

Prováděcí kroky
Opakování Podmínka (currentLevel <= finalLevel) Výstup
1 0 <= 5 (true) Prošli jste úrovní 0
2 1 <= 5 (true) Prošli jste úrovní 1
3 2 <= 5 (true) Prošli jste úrovní 2
4 3 <= 5 (true) Prošli jste úrovní 3
5 4 <= 5 (true) Prošli jste úrovní 4
6 5 <= 5 (true) Prošli jste úrovní 5
7 6 <= 5 (false) mimo smyčku while

2. Opakujte smyčku

Tato smyčka vyhodnocuje svůj stav na konci každého průchodu smyčkou. Opakování… while je podobné jako while s jedním klíčovým rozdílem. Tělo smyčky repeat… while je provedeno jednou před kontrolou testovacího výrazu.

Syntaxe smyčky repeat… while je:

 repeat ( // statements… ) while (testExpression)

Jak opakovat … zatímco smyčka funguje?

Tělo smyčky repeat… while je provedeno jednou (před kontrolou testovacího výrazu). Teprve potom se zkontroluje testExpression.

Pokud je testExpression vyhodnocen na true, jsou provedeny příkazy uvnitř těla smyčky a testExpression je znovu vyhodnocen. Tento proces pokračuje, dokud nebude testExpression vyhodnocen false.

Je-li testExpression false, smyčka repeat… while je ukončena.

Vývojový diagram opakování … zatímco Loop

Příklad 2: Opakujte při smyčce

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

Když spustíte program, výstup bude:

 Prošli jste úrovní 0 Prošli jste úrovní 1 Prošli jste úrovní 2 Prošli jste úrovní 3 Prošli jste úrovní 4 Prošli jste úrovní 5 mimo opakování while 

Ve výše uvedeném příkladu se poprvé provedou příkazy uvnitř smyčky. A pro další iteraci zkontroluje stav currentLevel <= finalLevel.

Pokud se podmínka vrátí true, jsou příkazy uvnitř while smyčky provedeny, jinak smyčka končí.

Prováděcí kroky
Opakování Podmínka (currentLevel <= finalLevel) Výstup
1 0 <= 5 (true) Prošli jste úrovní 0
2 1 <= 5 (true) Prošli jste úrovní 1
3 2 <= 5 (true) Prošli jste úrovní 2
4 3 <= 5 (true) Prošli jste úrovní 3
5 4 <= 5 (true) Prošli jste úrovní 4
6 5 <= 5 (true) Prošli jste úrovní 5
7 6 <= 5 (false) mimo smyčku while while

Ačkoli oba whilei repeat whilesmyčka mají stejné kroky provádění, podmínka currentLevel <= finalLevel ve repeat whilesmyčce se provede až po provedení příkazů uvnitř.

Ale while, stav je kontrolován na začátku před provedením prohlášení uvnitř.

3. Nekonečno při smyčce

Pokud se testovací výraz nikdy nevyhodnotí false, tělo whilea repeat… whilesmyčka se provedou nekonečně mnohokrát.

Příklad 3: Nekonečno při smyčce

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

Když spustíte program, výstup bude:

Ahoj světe! Ahoj světe!…

Když spustíte program, obě smyčky provedou print("Hello, World!")příkaz nekonečně mnohokrát. Takže můžete vidět nepřetržitý výstup Hello, World! v konzole.

Zajímavé články...