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
- for-Schleifen über Bereiche und Collections
- while und do-while: Wann welche Schleife verwendet wird
- forEach, repeat und forEachIndexed
- break, continue und benannte Rückgaben