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: BlueBeachte 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 breakfastAufgabe
MittelDu 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
nZeilen: Schülernamen (Zeichenketten)
Ausgabeformat:
Gib jeden Schüler in einer eigenen Zeile im folgenden Format aus:
Rank 1: Alice
Rank 2: Bob
Rank 3: CharlieDenke 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
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorErweiterte ZuweisungVergleichsoperatorenRückblick – Einfache Mathematik7Grundlegende Ein-/Ausgabe
println-FunktionString-VorlagenReadLine-EingabeTypkonvertierungWiederholung – Jahre bis zur RenteWiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteBenannte ArgumenteStandardwerteFunktionen mit einem AusdruckRückblick – Sigma-FunktionRückblick – Validierungsfunktion13Über Sequenzen iterieren
Über Elemente iterierenWithIndex-MethodeÜber Strings iterieren T1Über Strings iterieren T2Rückblick – Indizierte Buchstaben2Variablen
Val vs VarTypinferenzZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Ternär mit If-AusdruckWiederholung – Einfache Logik8Rechner zum Aufteilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion3Nullbarkeit
Was ist Null-Sicherheit?Nullable-TypenOperator für sicheren AufrufElvis-OperatorGrundlagen der FunktionsaufgabeAssertion auf Nicht-NullRückblick – Sicherer Zugriff6Entscheidungen treffen
If-AnweisungIf - ElseIf als AusdruckWhen-AusdruckWhen mit BereichenRückblick - Einfacher Taschenrechner9Schleifen
For-SchleifeWhile-SchleifeDo-While-SchleifeBreakContinueBereiche in SchleifenVerschachtelte SchleifeRückblick – FakultätRückblick – Dynamische EingabeÜbe selbstständig: Kotlin-Playground