Swift mens og gentag mens Loop (med eksempler)

I denne artikel lærer du at oprette mens og gentage … mens du løkker i Swift-programmering.

I den foregående artikel lærte vi om for-in-loop til at køre et sæt opgaver et bestemt antal gange. I denne artikel lærer du at bruge whileog repeat… whilesom et alternativ til for-in-loop, når antallet af iteration er ukendt.

Et stykke loop udfører et sæt udsagn, indtil en betingelse bliver false. Disse slags sløjfer bruges bedst, når antallet af iterationer ikke er kendt, før den første iteration begynder. Swift tilbyder to slags mens sløjfer:

1. Swift mens Loop

Denne sløjfe evaluerer dens tilstand ved starten af ​​hver passage gennem sløjfen.

Syntaksen for while loop er:

 while (TestExpression) ( // statements )

Hvordan mens loop fungerer?

Det TestExpressioner et boolsk udtryk.

Hvis den TestExpressionvurderes til true,

  • udsagn inden i mens løkken udføres.
  • og den TestExpressionevalueres igen.

Denne proces fortsætter, indtil den TestExpressionevalueres til false. Hvis TestExpressionevalueres til false, mens loop er afsluttet.

Flowchart af mens Loop

Eksempel 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ører programmet, vil output være:

 Du har bestået niveau 0 Du har bestået niveau 1 Du har bestået niveau 2 Du har bestået niveau 3 Du har bestået niveau 4 Du har bestået niveau 5 uden for loop 

I ovenstående program initialiseres variablen currentLevel og finalLevel til 0, og konstant gameCompleted initialiseres til true.

I hver iteration af mens loop kontrollerer den tilstanden currentLevel <= finalLevel. Hvis betingelsen vender tilbage true, udgår udsagn inden i loop, ellers slutter loop.

Udførelsestrin
Iteration Betingelse (nuværende niveau <= endelig niveau) Produktion
1 0 <= 5 (sand) Du har bestået niveau 0
2 1 <= 5 (sand) Du har bestået niveau 1
3 2 <= 5 (sand) Du har bestået niveau 2
4 3 <= 5 (sand) Du har bestået niveau 3
5 4 <= 5 (sand) Du har bestået niveau 4
6 5 <= 5 (sand) Du har bestået niveau 5
7 6 <= 5 (falsk) uden for mens sløjfe

2. Gentag mens Loop

Denne sløjfe evaluerer dens tilstand i slutningen af ​​hver passage gennem sløjfen. Gentag… mens sløjfen ligner mens sløjfen med en nøgleforskel. Body of repeat … mens loop udføres en gang før testudtrykket kontrolleres.

Syntaksen for gentagelse… mens loop er:

 repeat ( // statements… ) while (testExpression)

Hvordan gentager … mens loop fungerer?

Body of repeat … mens loop udføres en gang (inden kontrol af testudtrykket). Først derefter kontrolleres testExpression.

Hvis testExpression evalueres til sand, udføres udsagn inde i sløjfens krop, og testExpression evalueres igen. Denne proces fortsætter, indtil testExpression vurderes til false.

Når testExpression er false, gentages … mens loop slutter.

Flowchart of repeat … while Loop

Eksempel 2: Gentag mens sløjfe

 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ører programmet, vil output være:

 Du har bestået niveau 0 Du har bestået niveau 1 Du har bestået niveau 2 Du har bestået niveau 3 Du har bestået niveau 4 Du har bestået niveau 5 uden for gentagelse under loop 

I ovenstående eksempel udføres udsagnene inde i sløjfen for første gang. Og til næste iteration kontrollerer den tilstanden currentLevel <= finalLevel.

Hvis betingelsen vender tilbage true, udgår udsagn inden i loop, ellers slutter loop.

Udførelsestrin
Iteration Betingelse (nuværende niveau <= endelig niveau) Produktion
1 0 <= 5 (sand) Du har bestået niveau 0
2 1 <= 5 (sand) Du har bestået niveau 1
3 2 <= 5 (sand) Du har bestået niveau 2
4 3 <= 5 (sand) Du har bestået niveau 3
5 4 <= 5 (sand) Du har bestået niveau 4
6 5 <= 5 (sand) Du har bestået niveau 5
7 6 <= 5 (falsk) uden for gentagelse under løkke

Selvom begge whileog repeat whileloop har samme udførelsestrin, udføres betingelsen currentLevel <= finalLevel repeat whileloop kun efter udførelse af udsagnene inde i den.

Men i while, tilstanden kontrolleres i starten, før de udfører udsagnene inde i den.

3. Uendelig mens Loop

Hvis testudtrykket aldrig evalueres til false, udføres kroppen af whileog repeat… whileloop uendeligt mange gange.

Eksempel 3: Uendelig mens Loop

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

Når du kører programmet, vil output være:

Hej Verden! Hej Verden!…

Når du kører programmet, udfører begge sløjfer et print("Hello, World!")uendeligt antal gange. Så du kan se kontinuerlig output Hello, World! i konsollen.

Interessante artikler...