У овом чланку ћете научити да креирате и понављате… вхиле петље у Свифт програмирању.
У претходном чланку смо сазнали за фор-ин петљу за покретање скупа задатака одређени број пута. У овом чланку ћете научити да користите while
и repeat… while
као алтернативу фор-ин петљи када је број итерација непознат.
Петља вхиле извршава скуп наредби све док услов не постане false
. Ове врсте петљи је најбоље користити када број итерација није познат пре него што прва итерација започне. Свифт пружа две врсте вхиле петљи:
1. Брзо док петљате
Ова петља процењује своје стање на почетку сваког проласка кроз петљу.
Синтакса вхиле петље је:
while (TestExpression) ( // statements )
Како вхиле петља ради?
То TestExpression
је логички израз.
Ако TestExpression
се процењује на true
,
- извршавају се изрази унутар вхиле петље.
- и
TestExpression
поново се процењује.
Овај процес траје све док се TestExpression
не процени false
. Ако TestExpression
процени на false
, вхиле петља се прекида.
Дијаграм тока вхиле Лооп
Пример 1: Вхиле Лооп
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")
Када покренете програм, излаз ће бити:
Прешли сте ниво 0 Прошли сте ниво 1 Прошли сте ниво 2 Прошли сте ниво 3 Прошли сте ниво 4 Прешли сте ниво 5 изван вхиле петље
У горе наведеном програму променљива цуррентЛевел и финалЛевел иницијализују се на 0, а константна гамеЦомплетед иницијализује се у true
.
У свакој итерацији вхиле петље проверава стање currentLevel <= finalLevel
. Ако се услов врати true
, наредбе унутар вхиле петље се извршавају, иначе се петља завршава.
Понављање | Услов (цуррентЛевел <= финалЛевел) | Оутпут |
---|---|---|
1 | 0 <= 5 (тачно) | Прешли сте ниво 0 |
2 | 1 <= 5 (тачно) | Прешли сте ниво 1 |
3 | 2 <= 5 (тачно) | Прешли сте ниво 2 |
4 | 3 <= 5 (тачно) | Прешли сте ниво 3 |
5 | 4 <= 5 (тачно) | Прешли сте ниво 4 |
6 | 5 <= 5 (тачно) | Прешли сте ниво 5 |
7 | 6 <= 5 (нетачно) | изван вхиле петље |
2. Понављајте док петљате
Ова петља процењује своје стање на крају сваког проласка кроз петљу. Понављање… вхиле петља је слично петљи вхиле са једном кључном разликом. Тело репеат … вхиле петље се извршава једном пре него што се провери тест израз.
Синтакса понављања … вхиле петље је:
repeat ( // statements… ) while (testExpression)
Како поновити … док петља ради?
Тело репеат … вхиле петље се извршава једном (пре провере пробног израза). Тек тада се проверава тестЕкпрессион.
Ако се тестЕкпрессион процени на тачно, извршавају се изрази унутар тела петље и тестЕкпрессион се поново процењује. Овај процес траје све док се тестЕкпрессион не процени на false
.
Када је тестЕкпрессион false
, понављање… вхиле петља се завршава.
Дијаграм тока понављања … док се понавља
Пример 2: Поновите док петља
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")
Када покренете програм, излаз ће бити:
Прешли сте ниво 0 Прошли сте ниво 1 Прошли сте ниво 2 Прошли сте ниво 3 Прошли сте ниво 4 Прошли сте ниво 5 изван понављања вхиле петље
У горњем примеру, први пут се извршавају изрази унутар петље. А за следећу итерацију проверава стање currentLevel <= finalLevel
.
Ако се услов врати true
, наредбе унутар вхиле петље се извршавају, иначе се петља завршава.
Понављање | Услов (цуррентЛевел <= финалЛевел) | Оутпут |
---|---|---|
1 | 0 <= 5 (тачно) | Прешли сте ниво 0 |
2 | 1 <= 5 (тачно) | Прешли сте ниво 1 |
3 | 2 <= 5 (тачно) | Прешли сте ниво 2 |
4 | 3 <= 5 (тачно) | Прешли сте ниво 3 |
5 | 4 <= 5 (тачно) | Прешли сте ниво 4 |
6 | 5 <= 5 (тачно) | Прешли сте ниво 5 |
7 | 6 <= 5 (нетачно) | изван понављања вхиле петље |
Иако су оба while
и repeat while
петље имају исте кораке извршења, стање currentLevel <= finalLevel
на repeat while
петљи извршава тек након извршења изјаве у њој.
Али у while
, стање се проверава на почетку пре него што изврши изјаве унутар њега.
3. Бесконачно док петља
Ако се тест израз никада не израчуна false
, тело while
и repeat… while
петље се извршава бесконачно много пута.
Пример 3: Бесконачно док петља
while (true) ( print("Hello, World!") )
repeat ( print("Hello, World!") ) while (true)
Када покренете програм, излаз ће бити:
Здраво Свете! Здраво Свете!…
Када покренете програм, обе петље извршавају print("Hello, World!")
наредбу бесконачно много пута. Дакле, можете видети континуирани излаз Здраво, Свет! у конзоли.