I den här handledningen lär du dig att använda break för att avsluta en loop. Du kommer också att lära dig om pausetiketter.
Antag att du arbetar med öglor. Ibland är det önskvärt att avsluta slingan direkt utan att kontrollera testuttrycket.
I sådana fall break
används. Den avslutar närmaste slutna slinga när den påträffas (utan att testuttrycket kontrolleras). Detta liknar hur break statement fungerar i Java.
Hur fungerar paus?
Det används nästan alltid med if … annars konstruera. Till exempel,
för (…) (if (testExpression) (break))
Om testExpression utvärderas till true
, break
körs det som avslutar for
slingan.
Exempel: Kotlin-paus
fun main(args: Array) ( for (i in 1… 10) ( if (i == 5) ( break ) println(i) ) )
När du kör programmet blir resultatet:
1 2 3 4
När värdet på i är lika med 5 utvärderas uttrycket i == 5
inuti och exekveras. Detta avslutar for-slingan.if
true
break
Exempel: Beräkna summan tills användaren anger 0
Programmet nedan beräknar summan av siffror som användaren har angett tills användaren anger 0.
Besök Kotlin Basic Input Output för att lära dig mer om hur du tar in input från användaren.
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") )
När du kör programmet blir resultatet:
Ange ett nummer: 4 Ange ett nummer: 12 Ange ett nummer: 6 Ange ett nummer: -9 Ange ett nummer: 0 summa = 13
I ovanstående program är testuttrycket av while
slingan alltid true
.
Här while
körs slingan tills användaren går in i 0. När användaren matar in 0, break
exekveras vilket avslutar while
slingan.
Kotlin Märkt paus
Det du hittills har lärt dig är omärkt form av break
, som avslutar närmaste slutna slinga. Det finns ett annat sätt break
kan användas (märkt form) för att avsluta önskad slinga (kan vara yttre slinga).
Hur fungerar märkt brytning?
Etiketten i Kotlin börjar med en identifierare som följs av @
.
Här är test @ en etikett som är markerad på den yttre medan slingan. Nu, genom att använda break
med en etikett ( break@test
i det här fallet), kan du bryta den specifika slingan.
Här är ett exempel:
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 ) ) )
När du kör programmet blir resultatet:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
Här, när i == 2
uttrycket utvärderas till true
, break@first
körs det som avslutar slingan markerad med etikett first@
.
Här är en liten variation av ovanstående program.
I programmet nedan avslutar break slingan märkt med etikett @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 ) ) )
När du kör programmet blir resultatet:
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
Obs: Eftersom break
används för att avsluta den innersta slingan i detta program är det inte nödvändigt att använda märkt brytning i det här fallet.
Det finns 3 strukturella hoppa uttryck i Kotlin: break
, continue
och return
. För att lära dig mer om continue
och return
uttryck, besök:
- Kotlin fortsätter
- Kotlin-funktion