Snabbt medan och upprepa medan Loop (med exempel)

I den här artikeln lär du dig att skapa medan och upprepa … medan loopar i Swift-programmering.

I föregående artikel lärde vi oss om in-loop för att köra en uppsättning uppgifter för ett visst antal gånger. I den här artikeln lär du dig att använda whileoch repeat… whilesom ett alternativ för in-loop när antalet iteration är okänt.

En stundslinga kör en uppsättning uttalanden tills ett villkor blir false. Dessa typer av slingor används bäst när antalet iterationer inte är känt innan den första iterationen börjar. Swift tillhandahåller två typer av ögleslingor:

1. Snabbt medan Loop

Denna slinga utvärderar dess tillstånd i början av varje pass genom slingan.

Syntaxen för while loop är:

 while (TestExpression) ( // statements )

Hur medan loop fungerar?

Det TestExpressionär ett booleskt uttryck.

Om den TestExpressionutvärderas till true,

  • uttalanden inuti while-slingan körs.
  • och TestExpressionutvärderas igen.

Denna process fortsätter tills den TestExpressionutvärderas till false. Om TestExpressionutvärderas till false, medan slingan avslutas.

Flödesschema för medan Loop

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

När du kör programmet blir resultatet:

 Du har klarat nivå 0 Du har klarat nivå 1 Du har klarat nivå 2 Du har klarat nivå 3 Du har klarat nivå 4 Du har klarat nivå 5 utanför under loop 

I ovanstående program initialiseras variabeln currentLevel och finalLevel till 0 och konstant gameCompleted initialiseras till true.

I varje iteration av while loop kontrollerar den tillståndet currentLevel <= finalLevel. Om villkoret återvänder trueavslutas uttalanden inuti medan slingan annars slutar slingan.

Utförande steg
Iteration Skick (nuvarande nivå <= slutlig nivå) Produktion
1 0 <= 5 (sant) Du har klarat nivå 0
2 1 <= 5 (sant) Du har klarat nivå 1
3 2 <= 5 (sant) Du har klarat nivå 2
4 3 <= 5 (sant) Du har klarat nivå 3
5 4 <= 5 (sant) Du har klarat nivå 4
6 5 <= 5 (sant) Du har klarat nivå 5
7 6 <= 5 (falskt) utanför stundslingan

2. Upprepa medan Loop

Denna slinga utvärderar dess tillstånd i slutet av varje pass genom slingan. Upprepa … medan slingan liknar medan slingan med en nyckeldifferens. Upprepningens kropp … medan slingan körs en gång innan testuttrycket kontrolleras.

Syntaxen för upprepning … medan loop är:

 repeat ( // statements… ) while (testExpression)

Hur upprepas … medan loop fungerar?

Upprepningens kropp … medan slingan körs en gång (innan testuttrycket kontrolleras). Först då är testExpression kontrollerat.

Om testExpression utvärderas till sant körs uttalanden inuti slingan och testExpression utvärderas igen. Denna process fortsätter tills testExpression utvärderas till false.

När testExpression är false, upprepas … medan slingan avslutas.

Flödesschema för upprepning … medan Loop

Exempel 2: Upprepa medan 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") 

När du kör programmet blir resultatet:

 Du har klarat nivå 0 Du har klarat nivå 1 Du har klarat nivå 2 Du har klarat nivå 3 Du har klarat nivå 4 Du har klarat nivå 5 utanför repetition under loop 

I exemplet ovan körs uttalandena inuti slingan för första gången. Och för nästa iteration kontrollerar den tillståndet currentLevel <= finalLevel.

Om villkoret återvänder trueavslutas uttalanden inuti medan slingan annars slutar slingan.

Utförande steg
Iteration Skick (nuvarande nivå <= slutlig nivå) Produktion
1 0 <= 5 (sant) Du har klarat nivå 0
2 1 <= 5 (sant) Du har klarat nivå 1
3 2 <= 5 (sant) Du har klarat nivå 2
4 3 <= 5 (sant) Du har klarat nivå 3
5 4 <= 5 (sant) Du har klarat nivå 4
6 5 <= 5 (sant) Du har klarat nivå 5
7 6 <= 5 (falskt) utanför repetitionen medan slingan

Även om båda whileoch repeat whileloop har samma exekveringssteg, körs villkoret currentLevel <= finalLevel repeat whileloop bara efter att ha utfört uttalandena i den.

Men i while, kontrolleras tillståndet i början innan uttalandena inuti körs.

3. Oändlig medan loop

Om testuttrycket aldrig utvärderas till utförs falsekroppen av whileoch repeat… whileloop oändligt många gånger.

Exempel 3: Infinite while Loop

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

När du kör programmet blir resultatet:

Hej världen! Hej världen!…

När du kör programmet kör båda loopar print("Hello, World!")uttalanden för oändligt antal gånger. Så du kan se kontinuerlig produktion Hello, World! i konsolen.

Intressanta artiklar...