break, continue og mærkede returneringer
Styr løkkernes forløb med break/continue, og forlad indlejrede løkker med labels.
break, continue og mærkede returneringer er en gratis Kotlin Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Kotlin Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Kotlin Academy-kurset indeholder 4 lektioner i alt.
Kontrol af løkkeflow
Kotlin understøtter break (afslut løkken), continue (spring til næste gennemløb) og etiketter til at komme ud af indlejrede løkker.
Grundlæggende break
break afslutter straks den inderste omsluttende løkke.
fun main() {
for (i in 1..10) {
if (i == 5) break
print("$i ")
}
println() // 1 2 3 4
}Grundlæggende continue
continue springer resten af det aktuelle gennemløb over og går videre til det næste.
fun main() {
for (i in 1..10) {
if (i % 2 == 0) continue
print("$i ")
}
println() // 1 3 5 7 9
}Mærkede løkker
Mærk en løkke med label@, og referér til den fra break@label eller continue@label for at styre ydre løkker fra indlejrede løkker.
fun main() {
outer@ for (i in 1..3) {
for (j in 1..3) {
if (i == 2 && j == 2) break@outer
println("$i,$j")
}
}
}continue med en etiket
Brug continue@outer til at springe til næste gennemløb af en ydre løkke.
fun main() {
outer@ for (i in 1..3) {
for (j in 1..3) {
if (j == 2) continue@outer
println("i=$i j=$j")
}
}
}return@lambda
Inde i forEach og andre inline-funktioner afslutter et almindeligt return den omsluttende funktion. Brug return@forEach til kun at afslutte lambdaen.
fun main() {
listOf(1, 2, 3, 4, 5).forEach {
if (it == 3) return@forEach
println(it)
}
println("Done")
}Ikke-lokal returnering i lambdaer
Hvis lambdaen er inline (som forEach), afslutter et almindeligt return hele den omsluttende funktion — det kan nogle gange være overraskende.
fun process() {
listOf(1, 2, 3).forEach {
if (it == 2) return // exits process()
println(it)
}
println("never printed")
}
fun main() { process() }Brugerdefineret etiket på en lambda
Du kan eksplicit mærke en lambda med name@ for at gøre målet for returneringen tydeligere.
fun main() {
listOf(1, 2, 3, 4).forEach loop@{
if (it == 3) return@loop
println(it)
}
}break i while
break og continue fungerer på samme måde i while og do-while.
fun main() {
var i = 0
while (true) {
if (i >= 3) break
println("i = $i")
i++
}
}Kombination af etiket og continue
Etiketter og continue lader dig springe hele gennemløb af indlejrede algoritmer over uden flagvariabler.
fun main() {
val grid = listOf(listOf(1,2,0), listOf(3,4,5), listOf(0,6,7))
rows@ for (row in grid) {
for (cell in row) {
if (cell == 0) continue@rows
print("$cell ")
}
println()
}
}Hvornår bør du ikke bruge etiketter
Etiketter gør koden mere kompleks. Hvis du ofte får lyst til at bruge dem, kan du overveje at udtrække en indre løkke til en funktion med et almindeligt return.
fun firstMatch(grid: List<List<Int>>, target: Int): Pair<Int,Int>? {
for (r in grid.indices) for (c in grid[r].indices) {
if (grid[r][c] == target) return r to c
}
return null
}
fun main() {
val g = listOf(listOf(1,2),listOf(3,4))
println(firstMatch(g, 3))
}Hurtigt tjek
Hvordan afslutter du den ydre løkke fra en indre løkke i Kotlin?
Opsummering
break afslutter den inderste løkke; continue springer til næste gennemløb. Brug label@ + break@label/continue@label til indlejret styring. I lambdaer bør du foretrække return@forEach frem for return for at undgå ikke-lokale afslutninger.
Lær Kotlin med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 51
- Lektioner
- 203
Ofte stillede spørgsmål
Er lektionen “break, continue og mærkede returneringer” gratis?
Ja — alle 3 lektioner i læringssporet Kotlin Academy, inklusive “break, continue og mærkede returneringer”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Kotlin Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “break, continue og mærkede returneringer”?
Styr løkkernes forløb med break/continue, og forlad indlejrede løkker med labels. Du øver dig i Kotlin Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Kotlin Academy?
Der kræves ingen tidligere erfaring. Kotlin Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “break, continue og mærkede returneringer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Kotlin Academy-lektion?
Ja. Alle Kotlin Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- for-løkker over områder og samlinger
- while og do-while: Hvornår skal De bruge dem?
- forEach, repeat og forEachIndexed
- break, continue og mærkede returneringer