In deze tutorial leert u break gebruiken om een lus te beëindigen. U leert ook over afbrekingslabels.
Stel dat u met loops werkt. Het is soms wenselijk om de lus onmiddellijk te beëindigen zonder de testuitdrukking te controleren.
In dat geval break
wordt gebruikt. Het beëindigt de dichtstbijzijnde omsluitende lus wanneer deze wordt aangetroffen (zonder de testuitdrukking te controleren). Dit is vergelijkbaar met hoe break-instructie werkt in Java.
Hoe pauze werkt?
Het wordt bijna altijd gebruikt met if… else construct. Bijvoorbeeld,
voor (…) (if (testExpression) (break))
Als testExpression wordt geëvalueerd naar true
, break
wordt uitgevoerd waardoor de for
lus wordt beëindigd .
Voorbeeld: Kotlin-pauze
fun main(args: Array) ( for (i in 1… 10) ( if (i == 5) ( break ) println(i) ) )
Wanneer u het programma uitvoert, is de uitvoer:
1 2 3 4
Wanneer de waarde van i gelijk is aan 5, wordt expressie i == 5
binnenin if
geëvalueerd naar true
en break
uitgevoerd. Dit beëindigt de for-lus.
Voorbeeld: bereken de som totdat de gebruiker 0 invoert
Het onderstaande programma berekent de som van de getallen die door de gebruiker zijn ingevoerd totdat de gebruiker 0 invoert.
Bezoek Kotlin Basic Input Output voor meer informatie over hoe u input van de gebruiker kunt krijgen.
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") )
Wanneer u het programma uitvoert, is de uitvoer:
Voer een getal in: 4 Voer een getal in: 12 Voer een getal in: 6 Voer een getal in: -9 Voer een getal in: 0 som = 13
In het bovenstaande programma is de testuitdrukking van de while
lus altijd true
.
Hier loopt de while
lus totdat de gebruiker 0 invoert. Wanneer de gebruiker 0 invoert, break
wordt uitgevoerd waardoor de while
lus wordt beëindigd .
Kotlin gelabelde pauze
Wat je tot nu toe hebt geleerd, is een niet-gelabelde vorm break
, die de dichtstbijzijnde omsluitende lus beëindigt. Er is een andere manier die break
kan worden gebruikt (gelabelde vorm) om de gewenste lus te beëindigen (kan een buitenste lus zijn).
Hoe werkt een gelabelde pauze?
Label in Kotlin begint met een identifier die wordt gevolgd door @
.
Hier is test @ een label dat is gemarkeerd aan de buitenste while-lus. Nu, door te gebruiken break
met een label ( break@test
in dit geval), kunt u de specifieke lus doorbreken.
Hier is een voorbeeld:
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 ) ) )
Wanneer u het programma uitvoert, is de uitvoer:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
Hier, wanneer i == 2
expressie wordt geëvalueerd naar true
, break@first
wordt uitgevoerd waardoor de lus die is gemarkeerd met label wordt beëindigd first@
.
Hier is een kleine variatie op het bovenstaande programma.
In het onderstaande programma beëindigt break de lus gemarkeerd met label @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 ) ) )
Wanneer u het programma uitvoert, is de uitvoer:
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
Opmerking: aangezien, break
wordt gebruikt om de binnenste lus in dit programma te beëindigen, is het in dit geval niet nodig om het label break te gebruiken.
Er zijn 3 structurele sprong uitdrukkingen in Kotlin: break
, continue
en return
. Ga voor meer informatie over continue
en return
expressie naar:
- Kotlin gaat verder
- Kotlin-functie