Greitai ir kartokite, kol kilpa (su pavyzdžiais)

Šiame straipsnyje jūs sužinosite, kaip kurti ir kartoti …, o ciklus atliekant „Swift“ programavimą.

Ankstesniame straipsnyje mes sužinojome apie „for-in“ ciklą, kad tam tikrą skaičių kartų vykdytumėte užduočių rinkinį. Šiame straipsnyje jūs išmoksite naudoti whileir repeat… whilekaip alternatyvą for-in ciklui, kai nežinomas iteracijos skaičius.

„While“ ciklas vykdo sakinių rinkinį, kol tampa sąlyga false. Tokio tipo kilpas geriausia naudoti, kai iki pirmosios kartojimo pradžios nežinomas pakartojimų skaičius. „Swift“ teikia dviejų rūšių „loop“:

1. Greitai, kol kilpa

Ši kilpa įvertina jo būklę kiekvieno praėjimo per kilpą pradžioje.

„While loop“ sintaksė yra:

 while (TestExpression) ( // statements )

Kaip veikia kilpa?

Tai TestExpressionyra loginė išraiška.

Jei TestExpressionįvertinama true,

  • vykdomi sakiniai „while“ ciklo viduje.
  • ir TestExpressionvėl įvertinama.

Šis procesas tęsiasi tol, kol TestExpressionbus įvertinta false. Jei TestExpressionįvertins false, kol ciklas bus nutrauktas.

„Loop“ schema

1 pavyzdys: o ciklas

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

Kai paleisite programą, išvestis bus:

 Jūs perėjote 0 lygį Perėjote 1 lygį Perėjote 2 lygį Perėjote 3 lygį Perėjote 4 lygį Perėjote 5 lygį ne ciklo metu 

Pirmiau pateiktoje programoje kintamasis currentLevel ir finalLevel inicializuojamas į 0, o konstanta gameCompleted - į true.

Kiekvienoje kartos ciklo iteracijoje jis tikrina būklę currentLevel <= finalLevel. Jei sąlyga grįžta true, sakiniai viduje, kol vykdoma kilpa, kitaip ciklas baigiasi.

Vykdymo veiksmai
Kartojimas Sąlyga (currentLevel <= finalLevel) Rezultatas
1 0 <= 5 (teisinga) Jūs perėjote 0 lygį
2 1 <= 5 (tiesa) Jūs perėjote 1 lygį
3 2 <= 5 (teisinga) Jūs perėjote 2 lygį
4 3 <= 5 (teisinga) Jūs perėjote 3 lygį
5 4 <= 5 (tiesa) Jūs perėjote 4 lygį
6 5 <= 5 (teisinga) Jūs perėjote 5 lygį
7 6 <= 5 (klaidinga) už ciklo ribų

2. Pakartokite, kol kilpa

Ši kilpa įvertina jo būklę kiekvieno praėjimo per kilpą pabaigoje. Pakartokite … o ciklas yra panašus į „loop“ su vienu pagrindiniu skirtumu. Pakartotinis tekstas … o ciklas vykdomas vieną kartą prieš patikrinant testo išraišką.

Kartojimo sintaksė … o ciklas yra:

 repeat ( // statements… ) while (testExpression)

Kaip pakartoti … kol ciklas veikia?

Pakartotinis tekstas … o ciklas vykdomas vieną kartą (prieš patikrinant testo išraišką). Tik tada patikrinamas testExpression.

Jei „testExpression“ vertinama kaip teisinga, vykdomi sakiniai ciklo kūne ir testExpression vertinama dar kartą. Šis procesas tęsiasi tol, kol bus įvertinta „testExpression“ false.

Kai yra „testExpression“ false, pakartokite… kol ciklas baigsis.

Pakartotinių schema … o ciklas

2 pavyzdys: pakartokite, kol ciklas

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

Kai paleisite programą, išvestis bus:

 Jūs perėjote 0 lygį Jūs perėjote 1 lygį Perėjote 2 lygį Perėjote 3 lygį Perėjote 4 lygį Perėjote 5 lygį ne kartodami, kol ciklas 

Pirmiau pateiktame pavyzdyje pirmą kartą ciklo viduje vykdomi teiginiai. Ir kitą kartojimą tikrina būklę currentLevel <= finalLevel.

Jei sąlyga grįžta true, sakiniai viduje, kol vykdoma kilpa, kitaip ciklas baigiasi.

Vykdymo veiksmai
Kartojimas Sąlyga (currentLevel <= finalLevel) Rezultatas
1 0 <= 5 (teisinga) Jūs perėjote 0 lygį
2 1 <= 5 (tiesa) Jūs perėjote 1 lygį
3 2 <= 5 (teisinga) Jūs perėjote 2 lygį
4 3 <= 5 (teisinga) Jūs perėjote 3 lygį
5 4 <= 5 (tiesa) Jūs perėjote 4 lygį
6 5 <= 5 (teisinga) Jūs perėjote 5 lygį
7 6 <= 5 (klaidinga) ne kartoti, o kilpa

Nors tiek whileir repeat whilekilpa turi tuos pačius vykdymo veiksmus, su sąlyga, currentLevel <= finalLevel ant repeat whilekilpos yra vykdomas tik po to vykdyti pareiškimus viduje.

Tačiau whilebūsena patikrinama pradžioje, prieš vykdant joje esančius teiginius.

3. Begalinis, kol ciklas

Jei bandomoji išraiška niekada neįvertina false, kūnas whileir repeat… whileciklas vykdomi begalinį skaičių kartų.

3 pavyzdys: begalinis, kol ciklas

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

Kai paleisite programą, išvestis bus:

Labas pasauli! Labas pasauli!…

Kai paleidžiate programą, abu print("Hello, World!")ciklai vykdo pareiškimą begalinį skaičių kartų. Taigi, jūs galite pamatyti nuolatinį išėjimą Sveiki, pasauli! konsolėje.

Įdomios straipsniai...