Menu
Coddy logo textTech

WithIndex Metodu

Coddy'nin Kotlin Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 75 / 93.

Bir liste üzerinde yineleme yaparken çoğu zaman yalnızca öğeyi değil, konumunu da bilmeniz gerekir. withIndex() yöntemi size her ikisini de aynı anda verir.

Herhangi bir listedeki dizin ve değer çiftlerini almak için withIndex() çağrısını kullanın:

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

Parantezlerin içindeki sözdizimine dikkat edin: (index, color). Buna, dizini ve değeri ayrı değişkenlere açan destructuring adı verilir. Bu değişkenleri kodunuz için anlamlı olan herhangi bir şekilde adlandırabilirsiniz.

Bu yaklaşım, bir sayaç değişkeniyle dizini manuel olarak takip etmekten daha temizdir. Özellikle numaralandırılmış listeleri görüntülemeniz veya konuma göre farklı işlemler gerçekleştirmeniz gerektiğinde kullanışlıdır:

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

Görev

Orta

Girdi olarak öğrenci adlarının bir listesini alacaksınız. Önce öğrenci sayısını, ardından her adı okuyun.

withIndex() kullanarak her öğrenciyi sıra numarasıyla (0'dan değil, 1'den başlayarak) yazdırın.

Girdi biçimi:

  • İlk satır: öğrenci sayısını temsil eden bir tam sayı n
  • Sonraki n satır: öğrenci adları (dizeler)

Çıktı biçimi:

Her öğrenciyi ayrı bir satırda aşağıdaki biçimde yazdırın:

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

withIndex() işlevinin 0'dan başlayan dizinler verdiğini unutmayın; bu nedenle 1'den başlayan sıra numaraları için ayarlama yapmanız gerekir.

Kendin dene

fun main() {
    // Öğrenci sayısını oku
    val n = readLine()!!.toInt()
    
    // Öğrenci adlarını bir listeye oku
    val students = mutableListOf<String>()
    for (i in 1..n) {
        students.add(readLine()!!)
    }
    
    // TODO: Kodunuzu aşağıya yazın
    // withIndex() kullanarak öğrenciler üzerinde yineleyin ve sıralarını yazdırın
    // Unutmayın: withIndex() indeksleri 0'dan başlatır, ancak sıralar 1'den başlamalıdır
    
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground