Selles artiklis õpitakse programmi jätkamise üleandmist jätkama.
Kui töötate tsüklite või tingimuslausetega, peate võib-olla mõne tsükli sees oleva lause vahele jätma või tsükli kohe katkestama, kontrollimata testavaldist.
Sellistel juhtudel kasutatakse katkemise ja jätkamise avaldusi. Murdeavalduse kohta lisateabe saamiseks külastage lehte.
Jätkav lause peatab tsükli või lüliti lause sees olevate lausete täitmise. Seejärel hüppab see tagasi, et tsükli testi väljendust uuesti hinnata.
Jätkava lause süntaks on järgmine:
jätkata
Kuidas jätkub avaldus töötab?
Näide 1: kiire jätkamise lause tsükli jaoks
for i in 1… 5 ( if i == 4 ( continue ) print("i = (i)") )
Programmi käivitamisel on väljund järgmine:
i = 1 i = 2 i = 3 i = 5
Ülaltoodud programmis on itereeritav järjestus vahemikus 1 kuni 5.
I väärtuseks määratakse vahemiku (1) esimene number ja ajakohastatakse igal iteratsioonil vahemiku järgmise numbriga.
Tsükkel sisaldab ka lauset if i == 4
. Tõeseks hinnatud avaldis (4. iteratsiooni korral) täidab continue
lause, jätab lause täitmise vahele print("i = (i)")
ja liigub järgmisele iteratsioonile (i = 5).
Näide 2: Kiire lause jätkamine loopi ajal
var intialLevel:Int = -5, finalLevel:Int = 2 var currentLevel:Int = intialLevel while currentLevel < finalLevel ( if intialLevel < 0 ( print("Starting level must be positive") intialLevel = 0 currentLevel = intialLevel continue //skips the current execution ) currentLevel += 1 print("next level") ) print("outside of while loop")
Programmi käivitamisel on väljund järgmine:
Lähteaste peab olema positiivne järgmisel tasemel järgmisel tasemel väljaspool loopi
Ülaltoodud programmis töötab while-tsükkel seni, kuni currentLevel on väiksem kui finalLevel. Kuna intialLevel'ile on määratud väärtus -5 ja see on väiksem kui 0, if
käivitatakse laused sees .
Kui programm jõuab continue
avalduseni, jätab ta tsükli while väited vahele ja hüppab tingimust currentLevel < finalLevel
uuesti kontrollima .
Näide 3: Kiire jätkamise lause pesastatud silmustega
for j in 1… 2 ( for i in 1… 5 ( if i == 4 ( continue ) print("i = (i)") ) print("j = (j)") )
Programmi käivitamisel on väljund järgmine:
i = 1 i = 2 i = 3 i = 5 j = 1 i = 1 i = 2 i = 3 i = 5
Eespool programmi continue
avaldus sees if i == 4
ainult ignoreerib täitmise avaldus print("i = (i)")
sisemises silmus. Kuid see ei jäta välise silmuse täitmist vahele for i in 1… 5
.
Aga mis siis, kui soovite continue
ka väliskülge. Selleks peate Swiftis kasutama sildistatud avaldusi.
Märgistatud avaldus jätkamisega
Avaldusi, millel on vormis eesliited (silt: Avaldus), kutsutakse sildistatud avaldusena. Silt on identifikaator, millele saate viidata hiljem lause- või jätkulausetes. Märgistatud väljavõtete kohta lisateabe saamiseks külastage Swifti sildiga avaldust.
Kuidas jätkub siltidega avaldus?
Siin on silt identifikaator. Kui continue
lause täidetakse, jätab programm ülejäänud coe tsüklis vahele ja hüppab selle lause juurde, kust silt algab.
Näide 4: sildistatud avaldus jätkamisega
outerloop: for j in 1… 2 ( innerloop: for i in 1… 5 ( if i == 4 ( continue outerloop ) print("i = (i)") ) print("j = (j)") )
Programmi käivitamisel on väljund järgmine:
i = 1 i = 2 i = 3 i = 1 i = 2 i = 3
Ülaltoodud programmis on kaks sildistatud lauset outerloop: for j in 1… 2
ja innerloop: for i in 1… 5
.
Lausega saab kasutada sildi nimetusi externalloop ja innerloop continue
.
Programmis oleme kasutanud continue outerloop
lauset nii sisemise kui ka välise silmuse sees lausete täitmise vahele jätmiseks. Selle käigus värskendatakse nii i kui ka j väärtused vahemiku järgmisele numbrile.