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.
| 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.
| 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.







