Šioje pamokoje jūs išmoksite naudoti pertrauką, norėdami nutraukti kilpą. Taip pat sužinosite apie pertraukų etiketes.
Tarkime, kad dirbate su kilpomis. Kartais pageidautina nedelsiant nutraukti kilpą, netikrinant testo išraiškos.
Tokiu atveju break
yra naudojamas. Jis nutraukia artimiausią uždarymo kilpą, kai susiduriama (netikrinant testo išraiškos). Tai panašu į tai, kaip „break“ sakinys veikia „Java“.
Kaip vyksta pertrauka?
Jis beveik visada naudojamas, jei… kitaip sukonstruoti. Pavyzdžiui,
už (…) (jei (testExpression) (pertrauka))
Įvertinus testExpression true
, break
vykdoma, kuri nutraukia for
kilpą.
Pavyzdys: Kotlino pertrauka
fun main(args: Array) ( for (i in 1… 10) ( if (i == 5) ( break ) println(i) ) )
Kai paleisite programą, išvestis bus:
1 2 3 4
Kai i vertė lygi 5, išraiška i == 5
viduje if
įvertinama true
ir break
vykdoma. Tai nutraukia „for“ kilpą.
Pavyzdys: apskaičiuokite sumą, kol vartotojas įveda 0
Žemiau pateikta programa apskaičiuoja vartotojo įvestų skaičių sumą, kol vartotojas įveda 0.
Apsilankykite „Kotlin“ pagrindiniame įvesties išvestyje, kad sužinotumėte daugiau, kaip priimti įvestį iš vartotojo.
fun main(args: Array) ( var sum = 0 var number: Int while (true) ( print("Enter a number: ") number = readLine()!!.toInt() if (number == 0) break sum += number ) print("sum = $sum") )
Kai paleisite programą, išvestis bus:
Įveskite skaičių: 4 Įveskite numerį: 12 Įveskite skaičių: 6 Įveskite numerį: -9 Įveskite skaičių: 0 suma = 13
Pirmiau pateiktoje programoje testo while
ciklo išraiška yra visada true
.
Čia while
ciklas tęsiasi, kol vartotojas įveda 0. Kai vartotojas įveda 0, break
vykdoma, kuri nutraukia while
kilpą.
„Kotlin“ etiketė
Tai, ko išmokote iki šiol, yra nepažymėta forma break
, nutraukianti artimiausią uždarymo kilpą. Yra dar vienas būdas break
(pažymėta forma) nutraukti norimą kilpą (gali būti išorinė kilpa).
Kaip veikia paženklinta pertrauka?
Etiketė „Kotlin“ prasideda identifikatoriumi, po kurio rašoma @
.
Čia testas @ yra etiketė, pažymėta išorėje, o kilpa. Dabar naudodami break
etiketę ( break@test
šiuo atveju) galite nutraukti konkrečią kilpą.
Štai pavyzdys:
fun main(args: Array) ( first@ for (i in 1… 4) ( second@ for (j in 1… 2) ( println("i = $i; j = $j") if (i == 2) break@first ) ) )
Kai paleisite programą, išvestis bus:
i = 1; j = 1 i = 1; j = 2, i = 2; j = 1
Čia, i == 2
įvertinus išraišką true
, break@first
vykdoma, kuri nutraukia etikete pažymėtą kilpą first@
.
Štai nedidelis minėtos programos variantas.
Žemiau pateiktoje programoje pertrauka nutraukia etikete pažymėtą kilpą @second.
fun main(args: Array) ( first@ for (i in 1… 4) ( second@ for (j in 1… 2) ( println("i = $i; j = $j") if (i == 2) break@second ) ) )
Kai paleisite programą, išvestis bus:
i = 1; j = 1 i = 1; j = 2, i = 2; j = 1, i = 3; j = 1, i = 3; j = 2, i = 4; j = 1, i = 4; j = 2
Pastaba: Kadangi break
yra naudojamas nutraukti vidinę šios programos kilpą, šiuo atveju nereikia naudoti pažymėto pertraukimo.
Yra 3 struktūriniai šuolis išraiškas Kotlin: break
, continue
ir return
. Norėdami sužinoti daugiau continue
ir return
išraišką, apsilankykite:
- Kotlinas tęsia
- Kotlino funkcija