Menu
Coddy logo textTech

WithIndex-Methode

Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 75 von 93.

Beim Durchlaufen einer Liste musst du oft nicht nur das Element, sondern auch seine Position kennen. Die Methode withIndex() liefert dir beides auf einmal.

Rufe withIndex() für jede Liste auf, um Paare aus Index und Wert zu erhalten:

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

Beachte die Syntax innerhalb der Klammern: (index, color). Dies wird Destrukturierung genannt und packt den Index und den Wert in separate Variablen aus. Du kannst diese Variablen so benennen, wie es für deinen Code sinnvoll ist.

Dieser Ansatz ist übersichtlicher, als einen Index manuell mit einer Zählervariable zu verfolgen. Er ist besonders nützlich, wenn du nummerierte Listen anzeigen oder je nach Position unterschiedliche Aktionen ausführen musst:

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

Aufgabe

Mittel

Du erhältst eine Liste von Schülernamen als Eingabe. Lies zuerst die Anzahl der Schüler und anschließend jeden Namen ein.

Verwende withIndex(), um jeden Schüler mit seiner Rangnummer auszugeben (beginnend bei 1, nicht bei 0).

Eingabeformat:

  • Erste Zeile: eine ganze Zahl n, die die Anzahl der Schüler angibt
  • Nächste n Zeilen: Schülernamen (Zeichenketten)

Ausgabeformat:

Gib jeden Schüler in einer eigenen Zeile im folgenden Format aus:

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

Denke daran, dass withIndex() Indizes ab 0 liefert. Daher musst du sie für Rangnummern ab 1 anpassen.

Probier es selbst

fun main() {
    // Lese die Anzahl der Studenten
    val n = readLine()!!.toInt()
    
    // Lese die Studentennamen in eine Liste
    val students = mutableListOf<String>()
    for (i in 1..n) {
        students.add(readLine()!!)
    }
    
    // TODO: Schreibe deinen Code darunter
    // Verwende withIndex(), um durch die Studenten zu iterieren und ihren Rang auszugeben
    // Denk daran: withIndex() gibt Indizes beginnend bei 0, aber Ränge sollten bei 1 beginnen
    
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Kotlin-Playground