Menu
Coddy logo textTech

Metoda WithIndex

Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 75 z 93.

Podczas iterowania po liście często musisz znać nie tylko element, ale także jego pozycję. Metoda withIndex() daje ci oba te elementy naraz.

Wywołaj withIndex() na dowolnej liście, aby uzyskać pary indeksu i wartości:

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

Zwróć uwagę na składnię w nawiasach: (index, color). Nazywa się to destrukturyzacją, która rozpakowuje indeks i wartość do osobnych zmiennych. Możesz nazwać te zmienne tak, jak będzie to miało sens w Twoim kodzie.

To podejście jest czytelniejsze niż ręczne śledzenie indeksu za pomocą zmiennej licznika. Jest szczególnie przydatne, gdy trzeba wyświetlić listy numerowane lub wykonać różne działania w zależności od pozycji:

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

Wyzwanie

Średni

Otrzymasz listę imion i nazwisk uczniów jako dane wejściowe. Najpierw wczytaj liczbę uczniów, a następnie wczytaj każde imię i nazwisko.

Używając withIndex(), wypisz każdego ucznia wraz z jego numerem w rankingu (zaczynając od 1, a nie od 0).

Format danych wejściowych:

  • Pierwszy wiersz: liczba całkowita n reprezentująca liczbę uczniów
  • Kolejne n wierszy: imiona i nazwiska uczniów (ciągi znaków)

Format danych wyjściowych:

Wypisz każdego ucznia w osobnym wierszu w formacie:

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

Pamiętaj, że withIndex() zwraca indeksy zaczynające się od 0, więc musisz je dostosować, aby numery w rankingu zaczynały się od 1.

Spróbuj swoich sił

fun main() {
    // Wczytaj liczbę uczniów
    val n = readLine()!!.toInt()
    
    // Wczytaj imiona uczniów do listy
    val students = mutableListOf<String>()
    for (i in 1..n) {
        students.add(readLine()!!)
    }
    
    // TODO: Napisz swój kod poniżej
    // Użyj withIndex(), aby przejść przez students i wypisać ich miejsca w rankingu
    // Pamiętaj: withIndex() zwraca indeksy zaczynające się od 0, ale miejsca w rankingu powinny zaczynać się od 1
    
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Kotlin