In deze tutorial leert u hoe u door kunt gaan met het overslaan van de huidige iteratie van een lus. In dit artikel leert u ook over doorlopende labels.
Stel dat u met loops werkt. Het is soms wenselijk om de huidige iteratie van de lus over te slaan.
In dat geval continue
wordt gebruikt. Het continue
construct slaat de huidige iteratie van de omsluitende lus over en de besturing van het programma springt naar het einde van de lusbody.
Hoe gaat verder?
Het wordt bijna altijd gebruikt met if… else construct. Bijvoorbeeld,
while (testExpression1) // codes1 if (testExpression2) (doorgaan) // codes2)
Als de testExpression2 wordt geëvalueerd naar true
, continue
wordt uitgevoerd waarbij alle codes binnen de while
lus erna worden overgeslagen voor die iteratie.
Voorbeeld: Kotlin gaat verder
fun main(args: Array) ( for (i in 1… 5) ( println("$i Always printed.") if (i> 1 && i < 5) ( continue ) println("$i Not always printed.") ) )
Wanneer u het programma uitvoert, is de uitvoer:
1 Altijd afgedrukt. 1 Niet altijd gedrukt. 2 Altijd afgedrukt. 3 Altijd afgedrukt. 4 Altijd afgedrukt. 5 Altijd afgedrukt. 5 Niet altijd gedrukt.
Wanneer de waarde van i groter is dan 1 en kleiner dan 5, continue
wordt uitgevoerd, waardoor de uitvoering van wordt overgeslagen
println ("$ i niet altijd afgedrukt.")
uitspraak.
Echter, de verklaring
println ("$ i Always printed.")
wordt uitgevoerd in elke iteratie van de lus omdat deze instructie vóór de continue
constructie bestaat .
Voorbeeld: bereken de som van alleen positieve getallen
Het onderstaande programma berekent de som van maximaal 6 positieve getallen die door de gebruiker zijn ingevoerd. Als de gebruiker een negatief getal of nul invoert, wordt dit uit de berekening overgeslagen.
Bezoek Kotlin Basic Input Output voor meer informatie over hoe u input van de gebruiker kunt krijgen.
fun main(args: Array) ( var number: Int var sum = 0 for (i in 1… 6) ( print("Enter an integer: ") number = readLine()!!.toInt() if (number <= 0) continue sum += number ) println("sum = $sum") )
Wanneer u het programma uitvoert, is de uitvoer:
Voer een geheel getal in: 4 Voer een geheel getal in: 5 Voer een geheel getal in: -50 Voer een geheel getal in: 10 Voer een geheel getal in: 0 Voer een geheel getal in: 12 som = 31
Kotlin Labeled gaat verder
Wat je tot nu toe hebt geleerd, is een vorm zonder label continue
, die de huidige iteratie van de dichtstbijzijnde omsluitende lus overslaat. continue
kan ook worden gebruikt om de iteratie van de gewenste lus over te slaan (kan een buitenste lus zijn) door continue
labels te gebruiken.
Hoe gelabeld doorgaan werkt?
Label in Kotlin begint met een identifier die wordt gevolgd door @
.
Hier is outerloop @ een label gemarkeerd aan de buitenste while-lus. Nu, door te gebruiken continue
met het label ( continue@outerloop
in dit geval), kunt u de uitvoering van codes van de specifieke lus voor die iteratie overslaan.
Voorbeeld: gelabeld doorgaan
fun main(args: Array) ( here@ for (i in 1… 5) ( for (j in 1… 4) ( if (i == 3 || j == 2) continue@here println("i = $i; j = $j") ) ) )
Wanneer u het programma uitvoert, is de uitvoer:
i = 1; j = 1 i = 2; j = 1 i = 4; j = 1 i = 5; j = 1
Het gebruik van gelabeld continue
wordt vaak afgeraden omdat het uw code moeilijk te begrijpen maakt. Als u zich in een situatie bevindt waarin u gelabeld moet gebruiken continue
, refactureer dan uw code en probeer het op een andere manier op te lossen om het leesbaarder te maken.
Er zijn 3 structurele sprong uitdrukkingen in Kotlin: break
, continue
en return
. Ga voor meer informatie over break
en return
expressie naar:
- Kotlin breken
- Kotlin-functie