Menu
Coddy logo textTech

İndeks ile Each

Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası. Ders 66 / 88.

Bazen sadece üzerinde çalıştığınız öğeyi değil, aynı zamanda onun dizideki konumunu da bilmeniz gerekir. Ruby'nin each_with_index yöntemi, size tek bir yinelemede hem öğeyi hem de dizinini verir.

İşte şu şekilde çalışır:

fruits = ["apple", "banana", "cherry"]

fruits.each_with_index do |fruit, index|
  puts "#{index}: #{fruit}"
end

Şu çıktıyı verir:

0: apple
1: banana
2: cherry

Blokun artık boru karakterleri (pipes) arasında iki değişken aldığına dikkat edin: önce öğe gelir, ardından dizin gelir. Dizin, tıpkı dizi öğelerine doğrudan erişirken olduğu gibi 0'dan başlar.

Bu, özellikle numaralandırılmış listeler görüntülemeniz veya konumları takip etmeniz gerektiğinde kullanışlıdır:

tasks = ["Buy groceries", "Clean room", "Call mom"]

tasks.each_with_index do |task, i|
  puts "Task #{i + 1}: #{task}"
end

İndekse 1 ekleyerek, 0 yerine 1'den başlayan, insan dostu bir numaralı liste oluştururuz. each_with_index metodu, bir sayaç değişkenini manuel olarak takip etme ihtiyacını ortadan kaldırarak kodunuzu daha temiz ve hataya daha az meyilli hale getirir.

challenge icon

Görev

Kolay

Virgülle ayrılmış sözcükleri içeren tek bir girdi satırı okuyun (ör. apple,banana,cherry,date).

Girdiyi bir dizge dizisine ayırın, ardından her öğeyi 1’den (0’dan değil) başlayan numaralı bir liste olarak yazdırmak için each_with_index kullanın.

Her satır şu biçimi izlemelidir: Item 1: apple

Örneğin, girdi apple,banana,cherry,date ise çıktı şöyle olmalıdır:

Item 1: apple
Item 2: banana
Item 3: cherry
Item 4: date

Girdi red,green,blue ise çıktı şöyle olmalıdır:

Item 1: red
Item 2: green
Item 3: blue

Girdi monday,tuesday,wednesday,thursday,friday ise çıktı şöyle olmalıdır:

Item 1: monday
Item 2: tuesday
Item 3: wednesday
Item 4: thursday
Item 5: friday

Girdi solo ise çıktı şöyle olmalıdır:

Item 1: solo

Kendin dene

# Virgülle ayrılmış girdiyi oku
input = gets.chomp

# Girdiyi bir diziye böl
items = input.split(",")

# TODO: Her bir öğeyi numaralandırılmış bir liste olarak yazdırmak için each_with_index kullanın
# Unutmayın: dizin 0'dan başlar, ancak 1'den başlayarak görüntülemeniz gerekir
# Format: "Item 1: apple"
quiz iconKendini test et

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

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Ruby derleyicisi