Kotlin Academy · leksjon

while og do-while: Når bør de brukes

Skriv while- og do-while-løkker, og forstå når de bør brukes.

Leksjon 2 av 413 trinn

while og do-while: Når bør de brukes er en gratis leksjon i Kotlin Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kotlin Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.

To typer while-løkker

Kotlin tilbyr både while (forhåndstest) og do-while (ettertest). Forskjellen er at do-while alltid kjører kroppen minst én gang.

Grunnleggende while-løkke

En while-løkke kontrollerer betingelsen før hver iterasjon. Hvis den er usann fra start, kjøres kroppen aldri.

fun main() {
    var count = 0
    while (count < 3) {
        println("count = $count")
        count++
    }
}

Grunnleggende do-while-løkke

En do-while-løkke kjører kroppen og kontrollerer deretter betingelsen. Kroppen kjøres alltid minst én gang.

fun main() {
    var n = 10
    do {
        println("n = $n")
        n--
    } while (n > 7)
}

Lesing til en sentinel-verdi

while-løkker er ideelle når du ikke vet hvor mange iterasjoner du trenger – for eksempel ved lesing til en sentinel-verdi.

fun main() {
    val data = listOf(3, 7, 0, 9)
    var i = 0
    while (i < data.size && data[i] != 0) {
        println("got ${data[i]}")
        i++
    }
    println("stopped at index $i")
}

Søke i en liste

Bruk while til søk med tidlig avslutning, der du stopper så snart en betingelse er oppfylt.

fun main() {
    val nums = listOf(2, 4, 7, 8, 10)
    var i = 0
    while (i < nums.size && nums[i] % 2 == 0) i++
    println("first odd at index $i = ${nums[i]}") // 2 = 7
}

do-while for validering av inndata

Bruk do-while når du må utføre en handling (be om inndata, lese eller forsøke) før du kan kontrollere om den var vellykket.

fun main() {
    val validInputs = listOf("y", "n", "y")
    var idx = 0
    var input: String
    do {
        input = validInputs[idx++]
        println("user typed: $input")
    } while (input != "n" && idx < validInputs.size)
}

Teller med nedtelling

while-løkker håndterer tellere som reduseres til null på en ryddig måte.

fun main() {
    var lives = 3
    while (lives > 0) {
        println("Lives left: $lives")
        lives--
    }
    println("Game over")
}

Uendelig løkke med break

Bruk while (true) med break for kode i stil med en hendelsesløkke der avslutningsbetingelsen er kompleks.

fun main() {
    val items = listOf(1, 2, 3, -1, 4)
    var i = 0
    while (true) {
        if (i >= items.size || items[i] < 0) break
        println("ok: ${items[i]}")
        i++
    }
}

Sammenligning av while og for

Hvis du kjenner iterasjonsantallet på forhånd, bør du foretrekke for. Bruk while når iterasjonene avhenger av tilstanden under kjøring.

fun main() {
    // for: known bounds
    for (i in 1..3) print("$i ")
    println()
    // while: state-driven
    var n = 1
    while (n <= 3) { print("$n "); n++ }
    println()
}

Løkke med to variabler

while-løkker kan holde oversikt over flere variabler, noe som er nyttig i algoritmer som Fibonacci.

fun main() {
    var a = 0
    var b = 1
    while (b < 50) {
        print("$b ")
        val next = a + b
        a = b
        b = next
    }
    println() // 1 1 2 3 5 8 13 21 34
}

do-while kjører alltid én gang

Selv om betingelsen er usann fra start, kjøres kroppen til do-while én gang. Noen ganger er dette akkurat det du ønsker – andre ganger er det en feil.

fun main() {
    var x = 100
    do {
        println("x = $x") // prints once
        x--
    } while (x > 1000) // false immediately
}

Kort sjekk

Hvilken løkke garanterer at kroppen kjøres minst én gang, uavhengig av betingelsen?

Oppsummering

Bruk while når iterasjonsantallet avhenger av en betingelse under kjøring. Bruk do-while når kroppen må kjøres minst én gang (for eksempel ved validering eller nytt forsøk). Foretrekk for hvis iterasjonsantallet er kjent.

Gratis å komme i gang

Lær deg Kotlin med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «while og do-while: Når bør de brukes» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Kotlin Academy, inkludert «while og do-while: Når bør de brukes», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «while og do-while: Når bør de brukes»?

Skriv while- og do-while-løkker, og forstå når de bør brukes. Du øver på Kotlin Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Kotlin Academy?

Ingen tidligere erfaring er nødvendig. Kotlin Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «while og do-while: Når bør de brukes»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Kotlin Academy-leksjonen?

Ja. Alle Kotlin Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. for-løkker over områder og samlinger
  2. while og do-while: Når bør de brukes
  3. forEach, repeat og forEachIndexed
  4. break, continue og merkede returer
← Tilbake til Kotlin Academy