Šajā apmācībā jūs iemācīsities izmantot pārtraukumu, lai pārtrauktu cilpu. Jūs arī uzzināsiet par pārtraukuma etiķetēm.
Pieņemsim, ka jūs strādājat ar cilpām. Dažreiz ir vēlams nekavējoties pārtraukt cilpu, nepārbaudot testa izteiksmi.
Šādā gadījumā break
tiek izmantots. Tas pārtrauc tuvāko norobežojošo cilpu, kad rodas (nepārbaudot testa izteiksmi). Tas ir līdzīgi tam, kā break paziņojums darbojas Java valodā.
Kā notiek pārtraukums?
Gandrīz vienmēr to lieto kopā ar, ja… citur konstruētu. Piemēram,
par (…) (ja (testExpression) (pārtraukums))
Ja testExpression tiek novērtēts true
, break
tiek izpildīts, kas pārtrauc for
cilpu.
Piemērs: Kotlina pārtraukums
fun main(args: Array) ( for (i in 1… 10) ( if (i == 5) ( break ) println(i) ) )
Palaidot programmu, izeja būs:
1 2 3 4
Kad i vērtība ir vienāda ar 5, izteiksme i == 5
iekšpusē if
tiek novērtēta true
un break
tiek izpildīta. Tas pārtrauc for ciklu.
Piemērs: aprēķiniet summu, līdz lietotājs ievada 0
Zemāk redzamā programma aprēķina lietotāja ievadīto skaitļu summu, līdz lietotājs ievada 0.
Apmeklējiet Kotlin Basic Input Output, lai uzzinātu vairāk par to, kā iegūt ievadi no lietotāja.
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") )
Palaidot programmu, izeja būs:
Ievadiet numuru: 4 Ievadiet numuru: 12 Ievadiet numuru: 6 Ievadiet numuru: -9 Ievadiet numuru: 0 summa = 13
Iepriekš minētajā programmā while
cilpas testa izteiksme vienmēr ir true
.
Šeit while
cilpa darbojas, līdz lietotājs ievada 0. Kad lietotājs ievada 0, break
tiek izpildīts, kas pārtrauc while
cilpu.
Kotlina marķējums
Tas, ko jūs esat iemācījušies līdz šim, ir bez etiķetes forma break
, kas pārtrauc tuvāko norobežojošo cilpu. Ir vēl viens veids, kā break
var izmantot (apzīmēta forma), lai pārtrauktu vēlamo cilpu (var būt ārējā cilpa).
Kā darbojas iezīmētais pārtraukums?
Etiķete Kotlīnā sākas ar identifikatoru, kam seko @
.
Šeit tests @ ir etiķete, kas atzīmēta ārējā, kamēr cilpa. Tagad, izmantojot break
etiķeti ( break@test
šajā gadījumā), jūs varat pārtraukt konkrēto cilpu.
Lūk, piemērs:
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 ) ) )
Palaidot programmu, izeja būs:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
Šeit, kad i == 2
izteiksme tiek novērtēta true
, break@first
tiek izpildīta, kas pārtrauc cilpu, kas apzīmēta ar etiķeti first@
.
Šeit ir neliela iepriekš minētās programmas variācija.
Zemāk esošajā programmā pārtraukums pārtrauc cilpu, kas apzīmēta ar etiķeti @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 ) ) )
Palaidot programmu, izeja būs:
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
Piezīme: Tā kā break
tiek izmantots, lai pārtrauktu šīs programmas iekšējo cilpu, šajā gadījumā nav nepieciešams izmantot iezīmētu pārtraukumu.
Ir 3 strukturālas lēkt izteiksmes Kotlin: break
, continue
un return
. Lai uzzinātu vairāk continue
un return
izteicienus, apmeklējiet:
- Kotlins turpina
- Kotlina funkcija