Nopea hetki ja toista silmukka (esimerkkien kanssa)

Tässä artikkelissa opit luomaan taas ja toistamaan… kun taas silmukoita Swift-ohjelmoinnissa.

Edellisessä artikkelissa kerrottiin for-in -silmukasta tehtäväsarjan suorittamiseksi tietyn määrän kertoja. Tässä artikkelissa opit käyttämään whileja repeat… whilevaihtoehtona for-in -silmukalle, kun iteroinnin määrää ei tunneta.

A while -piiri suorittaa joukon lauseita, kunnes ehdosta tulee false. Tällaisia ​​silmukoita käytetään parhaiten, kun iteraatioiden määrää ei tiedetä ennen ensimmäisen iteraation alkua. Swift tarjoaa kahdenlaisia ​​while-silmukoita:

1. Nopea silmukka

Tämä silmukka arvioi kunnonsa jokaisen silmukan läpi menon alkaessa.

While-silmukan syntaksi on:

 while (TestExpression) ( // statements )

Kuinka silmukka toimii?

Se TestExpressionon looginen lauseke.

Jos TestExpressiontestataan jotta true,

  • while-silmukan sisällä olevat lauseet suoritetaan.
  • ja TestExpressionarvioidaan uudelleen.

Tätä prosessia jatketaan, kunnes arvo TestExpressionarvioidaan false. Jos TestExpressionarvioidaan false, kun silmukka lopetetaan.

Vuokaavio silmukasta

Esimerkki 1: Vaikka silmukka

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

Kun suoritat ohjelmaa, tulos on:

 Olet läpäissyt tason 0 Olet läpäissyt tason 1 Olet läpäissyt tason 2 Olet läpäissyt tason 3 Olet läpäissyt tason 4 Olet läpäissyt tason 5 ulkopuolella silmukan ulkopuolella 

Yllä olevassa ohjelmassa muuttujat currentLevel ja finalLevel alustetaan arvoon 0 ja vakio gameCompleted alustetaan arvoon true.

Jokaisessa while-silmukan iteraatiossa se tarkistaa kunnon currentLevel <= finalLevel. Jos ehto palaa true, lauseet sisällä, kun silmukka suoritetaan, muuten silmukka päättyy.

Suoritusvaiheet
Toisto Ehto (currentLevel <= finalLevel) Tuotos
1 0 <= 5 (tosi) Olet läpäissyt tason 0
2 1 <= 5 (tosi) Olet läpäissyt tason 1
3 2 <= 5 (tosi) Olet läpäissyt tason 2
4 3 <= 5 (tosi) Olet läpäissyt tason 3
5 4 <= 5 (tosi) Olet läpäissyt tason 4
6 5 <= 5 (tosi) Olet läpäissyt tason 5
7 6 <= 5 (väärä) while-silmukan ulkopuolella

2. Toista silmukan aikana

Tämä silmukka arvioi kunnonsa jokaisen silmukan läpikulun lopussa. Toista… kun taas silmukka on samanlainen kuin while-silmukka yhdellä keskeisellä erolla. Toiston kappale … kun silmukka suoritetaan kerran ennen testilausekkeen tarkistamista.

Toiston syntaksi, kun taas silmukka on:

 repeat ( // statements… ) while (testExpression)

Kuinka toistaa … kun silmukka toimii?

Toiston kappale … kun silmukka suoritetaan kerran (ennen testilausekkeen tarkistamista). Vasta sitten testExpression tarkistetaan.

Jos testExpression arvioidaan tosi, silmukan rungon sisällä olevat lauseet suoritetaan ja testExpression arvioidaan uudelleen. Tätä prosessia jatketaan, kunnes testExpression arvioidaan false.

Kun testExpression on false, toista… silmukan päättyessä.

Vuokaavio toistosta … silmukan aikana

Esimerkki 2: Toista silmukan aikana

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

Kun suoritat ohjelmaa, tulos on:

 Olet läpäissyt tason 0 Olet läpäissyt tason 1 Olet läpäissyt tason 2 Olet läpäissyt tason 3 Olet läpäissyt tason 4 Olet läpäissyt tason 5 toistamisen ulkopuolella silmukan aikana 

Yllä olevassa esimerkissä silmukan sisällä olevat lauseet suoritetaan ensimmäistä kertaa. Ja seuraavaa iteraatiota varten se tarkistaa kunnon currentLevel <= finalLevel.

Jos ehto palaa true, lauseet sisällä, kun silmukka suoritetaan, muuten silmukka päättyy.

Suoritusvaiheet
Toisto Ehto (currentLevel <= finalLevel) Tuotos
1 0 <= 5 (tosi) Olet läpäissyt tason 0
2 1 <= 5 (tosi) Olet läpäissyt tason 1
3 2 <= 5 (tosi) Olet läpäissyt tason 2
4 3 <= 5 (tosi) Olet läpäissyt tason 3
5 4 <= 5 (tosi) Olet läpäissyt tason 4
6 5 <= 5 (tosi) Olet läpäissyt tason 5
7 6 <= 5 (väärä) toiston ulkopuolella silmukan aikana

Vaikka molemmat whileja repeat whilesilmukka on sama suorittamisen vaiheet, ehto currentLevel <= finalLevel on repeat whilesilmukka suoritetaan vasta suorittamalla lausuntoja sisällä.

Mutta whilekunto tarkistetaan alussa ennen sen sisältämien lausekkeiden suorittamista.

3. Ääretön silmukan aikana

Jos testilauseke ei koskaan arvioi sitä false, runko whileja repeat… whilesilmukka suoritetaan loputtoman monta kertaa.

Esimerkki 3: Ääretön silmukan aikana

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

Kun suoritat ohjelmaa, tulos on:

Hei maailma! Hei maailma!…

Kun suoritat ohjelmaa, molemmat silmukat suorittavat print("Hello, World!")lauseen loputtoman monta kertaa. Joten näet jatkuvan tuotoksen Hei, maailma! konsolissa.

Mielenkiintoisia artikkeleita...