break, continue et retours étiquetés
Contrôlez le déroulement des boucles avec break et continue, et sortez des boucles imbriquées à l’aide d’étiquettes.
break, continue et retours étiquetés est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 4 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.
Contrôler le déroulement des boucles
Kotlin prend en charge break (sortir de la boucle), continue (passer à l’itération suivante) et les étiquettes pour sortir de boucles imbriquées.
Notions de base de break
break sort immédiatement de la boucle englobante la plus interne.
fun main() {
for (i in 1..10) {
if (i == 5) break
print("$i ")
}
println() // 1 2 3 4
}Notions de base de continue
continue ignore le reste de l’itération actuelle et passe à la suivante.
fun main() {
for (i in 1..10) {
if (i % 2 == 0) continue
print("$i ")
}
println() // 1 3 5 7 9
}Boucles étiquetées
Étiquetez une boucle avec label@ et faites-y référence depuis break@label ou continue@label pour contrôler les boucles externes depuis des boucles imbriquées.
fun main() {
outer@ for (i in 1..3) {
for (j in 1..3) {
if (i == 2 && j == 2) break@outer
println("$i,$j")
}
}
}continue avec une étiquette
Utilisez continue@outer pour passer à l’itération suivante d’une boucle externe.
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
Dans forEach et les autres fonctions inline, un simple return sort de la fonction englobante. Utilisez return@forEach pour sortir uniquement de la lambda.
fun main() {
listOf(1, 2, 3, 4, 5).forEach {
if (it == 3) return@forEach
println(it)
}
println("Done")
}Retour non local dans les lambdas
Si la lambda est inline, comme forEach, un simple return sort de toute la fonction englobante, ce qui peut parfois surprendre.
fun process() {
listOf(1, 2, 3).forEach {
if (it == 2) return // exits process()
println(it)
}
println("never printed")
}
fun main() { process() }Étiquette personnalisée pour une lambda
Vous pouvez étiqueter explicitement une lambda avec name@ afin d’indiquer plus clairement la cible du retour.
fun main() {
listOf(1, 2, 3, 4).forEach loop@{
if (it == 3) return@loop
println(it)
}
}break dans while
break et continue fonctionnent de la même manière dans while et do-while.
fun main() {
var i = 0
while (true) {
if (i >= 3) break
println("i = $i")
i++
}
}Combiner une étiquette et continue
Les étiquettes et continue permettent d’ignorer des itérations entières d’algorithmes imbriqués sans utiliser de variables indicatrices.
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()
}
}Quand ne pas utiliser les étiquettes
Les étiquettes ajoutent de la complexité. Si vous constatez que vous les utilisez souvent, envisagez d’extraire la boucle interne dans une fonction avec un return classique.
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))
}Vérification rapide
Comment sortir de la boucle externe depuis une boucle interne en Kotlin ?
Récapitulatif
break sort de la boucle la plus interne ; continue passe à l’itération suivante. Utilisez label@ avec break@label ou continue@label pour contrôler les boucles imbriquées. Dans les lambdas, préférez return@forEach à return pour éviter les sorties non locales.
Apprends Kotlin avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 51
- Leçons
- 203
Questions Fréquemment Posées
La leçon « break, continue et retours étiquetés » est-elle gratuite ?
Oui — le texte complet de « break, continue et retours étiquetés » 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 « break, continue et retours étiquetés » ?
Contrôlez le déroulement des boucles avec break et continue, et sortez des boucles imbriquées à l’aide d’étiquettes. 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 4 sur 4.
Combien de temps prend la leçon « break, continue et retours étiquetés » ?
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