Gyors, és ismételje meg a ciklust (példákkal)

Ebben a cikkben megtanulod, hogyan kell létrehozni és ismételni … míg a ciklusokat a Swift programozásban.

Az előző cikkben megtudtuk a for-in ciklust, hogy egy sor feladatot bizonyos számú alkalommal futtasson. Ebben a cikkben megtudhatja, hogy használat whileés repeat… whileegy alternatív for-in körben, ha az ismétlések számának ismeretlen.

A while ciklus egy utasítássorozatot hajt végre, amíg egy feltétel meg nem válik false. Ezeket a ciklusokat akkor lehet a legjobban használni, ha az iterációk száma nem ismert az első iteráció megkezdése előtt. A Swift kétféle while ciklust kínál:

1. Gyors, miközben hurok

Ez a hurok értékeli állapotát a hurok minden egyes szakaszának kezdetén.

A while ciklus szintaxisa:

 while (TestExpression) ( // statements )

Hogyan működik a hurok?

Ez TestExpressionegy logikai kifejezés.

Ha a TestExpressionkiértékeljük, hogy true,

  • a while cikluson belüli utasítások végrehajtásra kerülnek.
  • és TestExpressionújra kiértékelik.

Ha a kiértékelést végzi , a ciklus befejeződik.TestExpressionfalseTestExpressionfalse

A Hurok folyamatábrája

1. példa: Míg a hurok

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

A program futtatásakor a kimenet a következő lesz:

 Ön teljesítette a 0. szintet Megtette az 1. szintet Megtette a 2. szintet Megtette a 3. szintet Megtette a 4. szintet 

A fenti programban az currentLevel és a finalLevel változót 0-ra inicializáljuk, és a konstans gameCompleted-et inicializáljuk true.

A while ciklus minden iterációjában ellenőrzi az állapotot currentLevel <= finalLevel. Ha a feltétel visszatér true, akkor a ciklus végrehajtása alatt lévő utasítások különben a ciklus véget érnek.

Végrehajtási lépések
Ismétlés Feltétel (currentLevel <= finalLevel) Kimenet
1 0 <= 5 (igaz) A 0. szintet túllépte
2 1 <= 5 (igaz) Átmented az 1. szintet
3 2 <= 5 (igaz) Átmented a 2. szintet
4 3 <= 5 (igaz) Átmented a 3. szintet
5. 4 <= 5 (igaz) Ön átlépte a 4. szintet
6. 5 <= 5 (igaz) Ön átlépte az 5. szintet
7 6 <= 5 (hamis) kívül a hurok

2. Ismételje meg a hurok közben

Ez a hurok értékeli állapotát a hurok minden egyes áthaladásának végén. Az ismétlés… míg a hurok hasonló a while ciklushoz, egyetlen kulcs különbséggel. Az ismétlés törzse … miközben a ciklus egyszer végrehajtásra kerül, mielőtt a teszt kifejezést ellenőriznék.

Az ismétlés szintaxisa, míg a ciklus:

 repeat ( // statements… ) while (testExpression)

Hogyan ismételje meg … amíg a hurok működik?

Az ismétlés törzse, míg a ciklus egyszer végrehajtásra kerül (a teszt kifejezés ellenőrzése előtt). Csak ezután ellenőrizzük a testExpression lehetőséget.

Ha a testExpression értéket igazra értékelik, akkor a ciklus testén belüli utasítások végrehajtásra kerülnek, és a testExpression értéket újra kiértékelik. Ez a folyamat addig tart, amíg ki nem értékelik a testExpression értéket false.

Ha a testExpression van false, akkor ismételje meg…, amíg a hurok véget ér.

Az ismétlés folyamatábra … miközben a hurok

2. példa: Ismételje meg a hurok közben

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

A program futtatásakor a kimenet a következő lesz:

 Ön teljesítette a 0. szintet Megtette az 1. szintet Megtette a 2. szintet Megtette a 3. szintet Meghaladtad a 4. szintet 

A fenti példában először a cikluson belüli utasítások hajtódnak végre. A következő iterációhoz pedig ellenőrzi az állapotot currentLevel <= finalLevel.

Ha a feltétel visszatér true, akkor a ciklus végrehajtása közbeni utasítások ellenkező esetben a ciklus véget ér.

Végrehajtási lépések
Ismétlés Feltétel (currentLevel <= finalLevel) Kimenet
1 0 <= 5 (igaz) A 0. szintet túllépte
2 1 <= 5 (igaz) Átmented az 1. szintet
3 2 <= 5 (igaz) Átmented a 2. szintet
4 3 <= 5 (igaz) Átmented a 3. szintet
5. 4 <= 5 (igaz) Ön átlépte a 4. szintet
6. 5 <= 5 (igaz) Ön átlépte az 5. szintet
7 6 <= 5 (hamis) kívül ismétlés közben hurok

Bár mind whileés repeat whilehurok van azonos végrehajtási lépések, a feltétel currentLevel <= finalLevel a repeat whilehurok végrehajtása csak végrehajtása után a nyilatkozatok benne.

De whileaz állapotot az elején ellenőrizzük, mielőtt végrehajtanánk a benne lévő utasításokat.

3. Végtelen, míg a hurok

Ha a teszt kifejezés soha nem értékeli false, akkor a whileés repeat… whilehurok törzsét végtelen számú alkalommal hajtják végre.

3. példa: Végtelen, miközben hurok

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

A program futtatásakor a kimenet a következő lesz:

Helló Világ! Helló Világ!…

A program futtatásakor mindkét ciklus print("Hello, World!")végtelen sokszor hajt végre utasításokat. Tehát, láthatja a folyamatos kimenetet Hello, World! a konzolban.

érdekes cikkek...