Menu
CoddyTech

Método WithIndex

Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 75 de 93.

Ao percorrer uma lista, muitas vezes você precisa saber não apenas o elemento, mas também sua posição. O método withIndex() fornece ambos de uma só vez.

Chame withIndex() em qualquer lista para obter pares de índice e valor:

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

Observe a sintaxe dentro dos parênteses: (index, color). Isso é chamado de desestruturação, que desembrulha o índice e o valor em variáveis separadas. Você pode nomear essas variáveis da maneira que fizer sentido para o seu código.

Essa abordagem é mais limpa do que controlar manualmente um índice com uma variável contadora. Ela é especialmente útil quando você precisa exibir listas numeradas ou realizar ações diferentes com base na posição:

val tasks = listOf("Wake up", "Exercise", "Eat breakfast")
for ((i, task) in tasks.withIndex()) {
    println("Step ${i + 1}: $task")
}
// Saída:
// Step 1: Wake up
// Step 2: Exercise
// Step 3: Eat breakfast
challenge icon

Desafio

Médio

Você receberá uma lista de nomes de estudantes como entrada. Leia primeiro o número de estudantes e, em seguida, leia cada nome.

Usando withIndex(), imprima cada estudante com seu número de classificação (começando em 1, não em 0).

Formato da entrada:

  • Primeira linha: um inteiro n representando o número de estudantes
  • Próximas n linhas: nomes dos estudantes (strings)

Formato da saída:

Imprima cada estudante em uma linha separada no formato:

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

Lembre-se de que withIndex() fornece índices começando em 0, portanto, você precisará ajustá-los para que os números de classificação comecem em 1.

Experimente você mesmo

fun main() {
    // Leia o número de alunos
    val n = readLine()!!.toInt()
    
    // Leia os nomes dos alunos em uma lista
    val students = mutableListOf<String>()
    for (i in 1..n) {
        students.add(readLine()!!)
    }
    
    // TODO: Escreva seu código abaixo
    // Use withIndex() para iterar pelos alunos e imprimir a classificação deles
    // Lembre-se: withIndex() fornece índices começando de 0, mas as classificações devem começar de 1
    
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Kotlin