Menu
Coddy logo textTech

Méthode WithIndex

Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 75 sur 93.

Lorsque vous parcourez une liste, vous avez souvent besoin de connaître non seulement l’élément, mais aussi sa position. La méthode withIndex() vous donne les deux à la fois.

Appelez withIndex() sur n’importe quelle liste pour obtenir des paires d’index et de valeur :

val colors = listOf("Red", "Green", "Blue")
for ((index, color) in colors.withIndex()) {
    println("$index: $color")
}
// Sortie :
// 0: Red
// 1: Green
// 2: Blue

Remarquez la syntaxe entre les parenthèses : (index, color). Cela s’appelle la déstructuration, qui décompose l’index et la valeur en variables distinctes. Vous pouvez nommer ces variables comme bon vous semble pour votre code.

Cette approche est plus propre que de suivre manuellement un index avec une variable compteur. Elle est particulièrement utile lorsque vous devez afficher des listes numérotées ou effectuer différentes actions selon la position :

val tasks = listOf("Wake up", "Exercise", "Eat breakfast")
for ((i, task) in tasks.withIndex()) {
    println("Step ${i + 1}: $task")
}
// Sortie :
// Étape 1 : Se réveiller
// Étape 2 : Faire de l'exercice
// Étape 3 : Prendre le petit-déjeuner
challenge icon

Défi

Moyen

Vous recevrez une liste de noms d’étudiants en entrée. Lisez d’abord le nombre d’étudiants, puis lisez chaque nom.

À l’aide de withIndex(), affichez chaque étudiant avec son numéro de rang (en commençant par 1, et non par 0).

Format d’entrée :

  • Première ligne : un entier n représentant le nombre d’étudiants
  • Les n lignes suivantes : les noms des étudiants (chaînes de caractères)

Format de sortie :

Affichez chaque étudiant sur une ligne distincte au format suivant :

Rank 1: Alice
Rank 2: Bob
Rank 3: Charlie

N’oubliez pas que withIndex() vous fournit des indices commençant à 0 ; vous devrez donc les ajuster pour obtenir des numéros de rang commençant à 1.

Essayez vous-même

fun main() {
    // Lire le nombre d'étudiants
    val n = readLine()!!.toInt()
    
    // Lire les noms des étudiants dans une liste
    val students = mutableListOf<String>()
    for (i in 1..n) {
        students.add(readLine()!!)
    }
    
    // TODO: Écrivez votre code ci-dessous
    // Utilisez withIndex() pour parcourir les étudiants et afficher leur rang
    // N'oubliez pas : withIndex() donne des indices commençant à 0, mais les rangs doivent commencer à 1
    
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Kotlin