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ış kelimeler içeren tek bir satırlık girdi okuyun (örneğin, apple,banana,cherry,date).

Girdiyi bir diziye (array) bölün, ardından her bir öğeyi 1'den (0'dan değil) başlayarak numaralandırılmış bir liste olarak yazdırmak için each_with_index kullanın.

Her satır şu formatta olmalıdır: Item 1: apple

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

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

Eğer girdi red,green,blue ise, çıktı şu şekilde olmalıdır:

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

Eğer girdi monday,tuesday,wednesday,thursday,friday ise, çıktı şu şekilde olmalıdır:

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

Eğer girdi solo ise, çıktı şu şekilde olmalıdır:

Item 1: solo

Kopya kağıdı

each_with_index yöntemi, hem öğeye hem de dizinine (index) erişirken bir dizi üzerinde yineleme yapmanıza olanak tanır:

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

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

Çıktı:

0: apple
1: banana
2: cherry

Blok iki değişken alır: önce öğe, sonra dizin. Dizin 0'dan başlar.

1'den başlayan kullanıcı dostu numaralandırılmış listeler oluşturmak için dizine 1 ekleyin:

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

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

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