Snel terwijl en herhaal terwijl Loop (met voorbeelden)

In dit artikel leert u while en herhaal … while-lussen in Swift-programmering.

In het vorige artikel hebben we geleerd over de for-in-lus om een ​​reeks taken een bepaald aantal keren uit te voeren. In dit artikel leert u hoe u een for-in-lus gebruikt whileen repeat… whileals alternatief voor een lus als het aantal iteraties onbekend is.

Een while-lus voert een reeks instructies uit totdat een voorwaarde wordt false. Dit soort lussen kunnen het beste worden gebruikt als het aantal iteraties niet bekend is voordat de eerste iteratie begint. Swift biedt twee soorten while-lussen:

1. Snel terwijl Loop

Deze lus evalueert zijn toestand aan het begin van elke doorgang door de lus.

De syntaxis van while-lus is:

 while (TestExpression) ( // statements )

Hoe werkt while-lus?

Het TestExpressionis een booleaanse uitdrukking.

Als het TestExpressionwordt geëvalueerd naar true,

  • instructies binnen de while-lus worden uitgevoerd.
  • en het TestExpressionwordt opnieuw geëvalueerd.

Dit proces gaat door totdat de TestExpressionwordt geëvalueerd false. Als het TestExpressionevalueert naar false, wordt while-lus beëindigd.

Stroomdiagram van while-lus

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

Wanneer u het programma uitvoert, is de uitvoer:

 Je bent geslaagd voor niveau 0 Je bent geslaagd voor niveau 1 Je bent geslaagd voor niveau 2 Je bent geslaagd voor niveau 3 Je bent geslaagd voor niveau 4 Je bent geslaagd voor niveau 5 buiten de while-lus 

In het bovenstaande programma wordt de variabele currentLevel en finalLevel geïnitialiseerd op 0 en wordt de constante gameCompleted geïnitialiseerd op true.

In elke iteratie van while-lus wordt de conditie gecontroleerd currentLevel <= finalLevel. Als de voorwaarde terugkeert true, worden instructies in de while-lus uitgevoerd, anders wordt de lus beëindigd.

Uitvoeringsstappen
Iteratie Conditie (currentLevel <= finalLevel) Uitvoer
1 0 <= 5 (waar) Je bent geslaagd voor niveau 0
2 1 <= 5 (waar) Je bent geslaagd voor niveau 1
3 2 <= 5 (waar) Je bent geslaagd voor niveau 2
4 3 <= 5 (waar) Je bent geslaagd voor niveau 3
5 4 <= 5 (waar) Je bent geslaagd voor niveau 4
6 5 <= 5 (waar) Je bent geslaagd voor niveau 5
7 6 <= 5 (onwaar) buiten de while-lus

2. Herhaal terwijl Loop

Deze lus evalueert zijn toestand aan het einde van elke doorgang door de lus. De herhaal… while-lus is vergelijkbaar met de while-lus met één belangrijk verschil. De body van de repeat … while-lus wordt één keer uitgevoerd voordat de testuitdrukking wordt gecontroleerd.

De syntaxis van herhalen … while-lus is:

 repeat ( // statements… ) while (testExpression)

Hoe herhalen… while-lus werkt?

De body van de repeat… while-lus wordt één keer uitgevoerd (voordat de testuitdrukking wordt gecontroleerd). Pas dan wordt testExpression gecontroleerd.

Als testExpression als true wordt geëvalueerd, worden instructies in de body van de lus uitgevoerd en wordt testExpression opnieuw geëvalueerd. Dit proces gaat door totdat testExpression wordt geëvalueerd naar false.

Als testExpression is false, wordt de repeat … while-lus beëindigd.

Stroomschema van herhalen… while Loop

Voorbeeld 2: herhalen tijdens lus

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

Wanneer u het programma uitvoert, is de uitvoer:

 Je bent geslaagd voor niveau 0 Je bent geslaagd voor niveau 1 Je bent geslaagd voor niveau 2 Je bent geslaagd voor niveau 3 Je bent geslaagd voor niveau 4 Je bent geslaagd voor niveau 5 buiten de herhaal while lus 

In het bovenstaande voorbeeld worden de instructies in de lus voor de eerste keer uitgevoerd. En voor de volgende iteratie controleert het de toestand currentLevel <= finalLevel.

Als de voorwaarde terugkeert true, worden instructies in de while-lus uitgevoerd, anders wordt de lus beëindigd.

Uitvoeringsstappen
Iteratie Conditie (currentLevel <= finalLevel) Uitvoer
1 0 <= 5 (waar) Je bent geslaagd voor niveau 0
2 1 <= 5 (waar) Je bent geslaagd voor niveau 1
3 2 <= 5 (waar) Je bent geslaagd voor niveau 2
4 3 <= 5 (waar) Je bent geslaagd voor niveau 3
5 4 <= 5 (waar) Je bent geslaagd voor niveau 4
6 5 <= 5 (waar) Je bent geslaagd voor niveau 5
7 6 <= 5 (onwaar) buiten de herhaal while-lus

Hoewel beide whileen repeat whileloop dezelfde uitvoeringsstappen hebben, wordt de condition currentLevel <= finalLevel on repeat whileloop alleen uitgevoerd nadat de instructies erin zijn uitgevoerd.

Maar in whilewordt de voorwaarde aan het begin gecontroleerd voordat de instructies erin worden uitgevoerd.

3. Oneindig terwijl Loop

Als de testuitdrukking nooit resulteert in false, wordt de hoofdtekst van whileen de repeat… whilelus oneindig vaak uitgevoerd.

Voorbeeld 3: Oneindige while-lus

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

Wanneer u het programma uitvoert, is de uitvoer:

Hallo Wereld! Hallo Wereld!…

Wanneer u het programma uitvoert, voert beide lussen een print("Hello, World!")instructie voor een oneindig aantal keren uit. U kunt dus continue output zien Hallo, wereld! in de console.

Interessante artikelen...