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… while
egy 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 TestExpression
egy logikai kifejezés.
Ha a TestExpression
kié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.TestExpression
false
TestExpression
false
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 while
hurok van azonos végrehajtási lépések, a feltétel currentLevel <= finalLevel
a repeat while
hurok végrehajtása csak végrehajtása után a nyilatkozatok benne.
De while
az á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… while
hurok 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.