Menu
Coddy logo textTech

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