Kotlin gaat verder (met voorbeelden)

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 continuewordt gebruikt. Het continueconstruct 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, continuewordt uitgevoerd waarbij alle codes binnen de whilelus 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, continuewordt 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 continueconstructie 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. continuekan ook worden gebruikt om de iteratie van de gewenste lus over te slaan (kan een buitenste lus zijn) door continuelabels 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 continuemet het label ( continue@outerloopin 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 continuewordt 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, continueen return. Ga voor meer informatie over breaken returnexpressie naar:

  • Kotlin breken
  • Kotlin-functie

Interessante artikelen...