Swift mens og gjenta mens Loop (med eksempler)

I denne artikkelen vil du lære å lage mens og gjenta … mens du sløyfer i Swift programmering.

I forrige artikkel lærte vi om for-in-loop for å kjøre et sett med oppgaver for et bestemt antall ganger. I denne artikkelen lærer du å bruke whileog repeat… whilesom et alternativ til for-in loop når antall iterasjon er ukjent.

En stund-løkke utfører et sett med utsagn til en tilstand blir false. Denne typen sløyfer brukes best når antall iterasjoner ikke er kjent før den første iterasjonen begynner. Swift tilbyr to typer mens løkker:

1. Swift mens Loop

Denne sløyfen evaluerer tilstanden ved starten av hver passering gjennom sløyfen.

Syntaksen for while loop er:

 while (TestExpression) ( // statements )

Hvordan mens loop fungerer?

Det TestExpressioner et boolsk uttrykk.

Hvis den TestExpressionblir evaluert til true,

  • uttalelser i mens loop utføres.
  • og TestExpressionblir evaluert på nytt.

Denne prosessen fortsetter til den TestExpressionblir evaluert til false. Hvis TestExpressionevaluerer til false, mens loop er avsluttet.

Flytskjema for 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 kjører programmet, vil utdataene være:

 Du har bestått nivå 0 Du har bestått nivå 1 Du har bestått nivå 2 Du har bestått nivå 3 Du har bestått nivå 4 Du har bestått nivå 5 utenfor mens loop 

I det ovennevnte programmet initialiseres variabelen currentLevel og finalLevel til 0 og konstant gameCompleted initialiseres til true.

I hver iterasjon av mens loop kontrollerer den tilstanden currentLevel <= finalLevel. Hvis tilstanden kommer tilbake true, utsettes utsagnene mens sløyfen ellers slutter sløyfen.

Gjennomføringstrinn
Iterasjon Tilstand (nåværende nivå <= endelig nivå) Produksjon
1 0 <= 5 (sant) Du har bestått nivå 0
2 1 <= 5 (sant) Du har bestått nivå 1
3 2 <= 5 (sant) Du har bestått nivå 2
4 3 <= 5 (sant) Du har bestått nivå 3
5 4 <= 5 (sant) Du har bestått nivå 4
6 5 <= 5 (sant) Du har bestått nivå 5
7 6 <= 5 (usann) utenfor mens løkken

2. Gjenta mens Loop

Denne sløyfen evaluerer tilstanden på slutten av hver passering gjennom sløyfen. Gjenta … mens sløyfe ligner mens sløyfe med en nøkkelforskjell. Body of repeat … while loop utføres en gang før testuttrykket blir sjekket.

Syntaksen for gjenta … mens sløyfe er:

 repeat ( // statements… ) while (testExpression)

Hvordan gjenta … mens loop fungerer?

Gjenta kroppen … mens sløyfen utføres en gang (før du sjekker testuttrykket). Først da blir testExpression sjekket.

Hvis testExpression blir evaluert til sant, utføres setninger inne i sløyfen, og testExpression blir evaluert på nytt. Denne prosessen fortsetter til testExpression blir evaluert til false.

Når testekspresjon er false, gjentar … mens sløyfen avsluttes.

Flytskjema for gjentakelse… mens Loop

Eksempel 2: Gjenta mens 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 kjører programmet, vil utdataene være:

 Du har bestått nivå 0 Du har bestått nivå 1 Du har bestått nivå 2 Du har bestått nivå 3 Du har bestått nivå 4 Du har bestått nivå 5 utenfor repetisjon mens sløyfe 

I eksemplet ovenfor, for første gang kjøres utsagnene i sløyfen. Og for neste iterasjon, sjekker den tilstanden currentLevel <= finalLevel.

Hvis tilstanden kommer tilbake true, utsettes utsagnene inne mens sløyfen ellers slutter sløyfen.

Gjennomføringstrinn
Iterasjon Tilstand (nåværende nivå <= endelig nivå) Produksjon
1 0 <= 5 (sant) Du har bestått nivå 0
2 1 <= 5 (sant) Du har bestått nivå 1
3 2 <= 5 (sant) Du har bestått nivå 2
4 3 <= 5 (sant) Du har bestått nivå 3
5 4 <= 5 (sant) Du har bestått nivå 4
6 5 <= 5 (sant) Du har bestått nivå 5
7 6 <= 5 (usann) utenfor repetisjon mens sløyfe

Selv om begge whileog repeat whileloop har samme utføringstrinn, blir tilstanden currentLevel <= finalLevel repeat whileloop bare utført etter at uttalelsene er inne i den.

Men i while, blir tilstanden sjekket i begynnelsen før du utfører uttalelsene inni den.

3. Uendelig mens Loop

Hvis testuttrykket aldri evalueres til false, blir kroppen av whileog repeat… whileloop utført uendelig mange ganger.

Eksempel 3: Infinite while Loop

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

Når du kjører programmet, vil utdataene være:

Hei Verden! Hei Verden!…

Når du kjører programmet, utfører begge sløyfene print("Hello, World!")uendelig antall ganger. Så du kan se kontinuerlig produksjon Hello, World! i konsollen.

Interessante artikler...