forEach, repeat et forEachIndexed
Découvrez les outils d’itération de style fonctionnel et les situations où ils sont préférables aux boucles classiques.
forEach, repeat et forEachIndexed est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.
Itération fonctionnelle
En plus de for, Kotlin propose l’itération de niveau supérieur avec forEach, forEachIndexed et repeat. Ces fonctions rendent les petites boucles plus expressives.
Notions de base de forEach
forEach reçoit une lambda et l’exécute pour chaque élément. L’élément est nommé implicitement it.
fun main() {
val items = listOf("a", "b", "c")
items.forEach { println(it) }
}forEach avec un paramètre nommé
Donnez un nom plus explicite au paramètre de la lambda lorsque it nuit à la lisibilité.
fun main() {
val users = listOf("Alice", "Bob", "Charlie")
users.forEach { name ->
println("Hello, $name!")
}
}repeat pour un nombre fixe d’itérations
repeat(n) exécute son bloc exactement n fois. La lambda reçoit l’indice de l’itération, en commençant à 0.
fun main() {
repeat(5) {
println("Iteration $it")
}
}repeat pour les effets de bord
Utilisez repeat pour les actions simples à effectuer n fois : afficher un séparateur, réessayer un appel, etc.
fun main() {
repeat(3) { println("-".repeat(20)) }
}forEachIndexed
forEachIndexed fournit à la lambda à la fois l’indice et l’élément.
fun main() {
val words = listOf("Hello", "Kotlin", "World")
words.forEachIndexed { index, word ->
println("$index: $word")
}
}forEach ou for
forEach est concis, mais ne permet pas d’utiliser break ou continue. Utilisez une boucle for traditionnelle si vous devez sortir prématurément.
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()
}Retourner depuis forEach
Vous pouvez simuler continue dans forEach avec un return@forEach étiqueté.
fun main() {
listOf(1, 2, 3, 4).forEach {
if (it % 2 == 0) return@forEach // skip
println("odd: $it")
}
}forEach sur un dictionnaire
forEach appliqué à un dictionnaire expose chaque Map.Entry sous le nom it ; déstructurez-la pour améliorer la lisibilité.
fun main() {
val scores = mapOf("Alice" to 9, "Bob" to 7)
scores.forEach { (name, score) ->
println("$name -> $score")
}
}Enchaîner repeat avec d’autres appels
repeat renvoie Unit, vous ne pouvez donc pas l’enchaîner de manière fonctionnelle. Utilisez-le uniquement pour les effets de bord.
fun main() {
var sum = 0
repeat(10) { sum += it }
println("Sum 0..9 = $sum") // 45
}Remarque sur les performances
Pour les boucles serrées sur de grandes collections, un simple for est légèrement plus rapide, car il évite de créer une lambda. Pour privilégier la clarté, utilisez de préférence forEach.
fun main() {
val n = 1_000_000
var sum = 0L
for (i in 1..n) sum += i
println(sum)
}Vérification rapide
Quelle construction fournit à sa lambda à la fois un indice et un élément ?
Récapitulatif
forEach : une lambda par élément. forEachIndexed : indice et élément. repeat(n) : boucle exécutée n fois. Aucune de ces constructions ne prend en charge le break classique : utilisez for pour une sortie anticipée.
Questions Fréquemment Posées
La leçon « forEach, repeat et forEachIndexed » est-elle gratuite ?
Oui — le texte complet de « forEach, repeat et forEachIndexed » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « forEach, repeat et forEachIndexed » ?
Découvrez les outils d’itération de style fonctionnel et les situations où ils sont préférables aux boucles classiques. Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kotlin Academy ?
Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « forEach, repeat et forEachIndexed » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?
Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Boucle for sur des intervalles et des collections
- while et do-while : quand utiliser chacune
- forEach, repeat et forEachIndexed
- break, continue et retours étiquetés