0Pricing
Kotlin Academy · Lektion

forEach, repeat und forEachIndexed

Entdecken Sie Iterationshilfen im funktionalen Stil und erfahren Sie, wann sie klassischen Schleifen überlegen sind.

forEach, repeat und forEachIndexed ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Funktionale Iteration

Neben for bietet Kotlin Iteration höherer Ordnung: forEach, forEachIndexed und repeat. Damit lassen sich kurze Schleifen ausdrucksstärker formulieren.

Grundlagen von forEach

forEach übernimmt eine Lambda und führt sie für jedes Element aus. Das Element wird implizit it genannt.

fun main() {
    val items = listOf("a", "b", "c")
    items.forEach { println(it) }
}

forEach mit benanntem Parameter

Geben Sie dem Lambda-Parameter einen aussagekräftigeren Namen, wenn it unpassend wirkt.

fun main() {
    val users = listOf("Alice", "Bob", "Charlie")
    users.forEach { name ->
        println("Hello, $name!")
    }
}

repeat für eine feste Anzahl von Iterationen

repeat(n) führt seinen Block genau n-mal aus. Die Lambda erhält den Iterationsindex (beginnend bei 0).

fun main() {
    repeat(5) {
        println("Iteration $it")
    }
}

repeat für Seiteneffekte

Verwenden Sie repeat für einfache Aktionen, die n-mal ausgeführt werden sollen: ein Trennzeichen ausgeben, einen Aufruf wiederholen usw.

fun main() {
    repeat(3) { println("-".repeat(20)) }
}

forEachIndexed

forEachIndexed stellt der Lambda sowohl den Index als auch das Element bereit.

fun main() {
    val words = listOf("Hello", "Kotlin", "World")
    words.forEachIndexed { index, word ->
        println("$index: $word")
    }
}

forEach im Vergleich zu for

forEach ist kompakt, unterstützt aber break/continue nicht. Verwenden Sie eine herkömmliche for-Schleife, wenn Sie vorzeitig abbrechen müssen.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5)
    // forEach: runs to completion
    nums.forEach { print("$it ") }
    println()
    // for: can break
    for (n in nums) {
        if (n == 3) break
        print("$n ")
    }
    println()
}

Aus forEach zurückkehren

Sie können continue in forEach mit einem markierten return@forEach simulieren.

fun main() {
    listOf(1, 2, 3, 4).forEach {
        if (it % 2 == 0) return@forEach // skip
        println("odd: $it")
    }
}

forEach auf einer Map

forEach stellt bei einer Map jeden Map.Entry als it bereit. Zerlegen Sie ihn für bessere Lesbarkeit.

fun main() {
    val scores = mapOf("Alice" to 9, "Bob" to 7)
    scores.forEach { (name, score) ->
        println("$name -> $score")
    }
}

repeat mit anderen Aufrufen verketten

repeat gibt Unit zurück, daher können Sie es nicht funktional verketten. Verwenden Sie es ausschließlich für Seiteneffekte.

fun main() {
    var sum = 0
    repeat(10) { sum += it }
    println("Sum 0..9 = $sum") // 45
}

Hinweis zur Performance

Bei engen Schleifen über große Collections ist eine einfache for-Schleife etwas schneller, da sie keine Lambda erstellt. Aus Gründen der Klarheit sollten Sie forEach bevorzugen.

fun main() {
    val n = 1_000_000
    var sum = 0L
    for (i in 1..n) sum += i
    println(sum)
}

Kurztest

Welche Konstruktion stellt ihrer Lambda sowohl einen Index als auch ein Element bereit?

Zusammenfassung

forEach: eine Lambda pro Element. forEachIndexed: Index und Element. repeat(n): Schleife mit fester Anzahl von n Durchläufen. Keine dieser Konstruktionen unterstützt ein klassisches break — verwenden Sie for für einen vorzeitigen Abbruch.

Häufig gestellte Fragen

Ist die Lektion „forEach, repeat und forEachIndexed“ kostenlos?

Ja — der vollständige Text von „forEach, repeat und forEachIndexed“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „forEach, repeat und forEachIndexed“?

Entdecken Sie Iterationshilfen im funktionalen Stil und erfahren Sie, wann sie klassischen Schleifen überlegen sind. Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „forEach, repeat und forEachIndexed“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. for-Schleifen über Bereiche und Collections
  2. while und do-while: Wann welche Schleife verwendet wird
  3. forEach, repeat und forEachIndexed
  4. break, continue und benannte Rückgaben
← Zurück zu Kotlin Academy