Menu
Coddy logo textTech

2D Diziler Üzerinde Yineleme

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 12 / 56.

2 boyutlu bir dizideki her hücreyi ziyaret etmek için iki yinelemeyi iç içe yerleştirirsiniz. Dış döngü satırlar arasında gezinir; iç döngü ise o satırın sütunları arasında gezinir.

En deyimsel Ruby deseni each metodunu iki kez kullanır:

grid = [
  [1, 2, 3],
  [4, 5, 6]
]

grid.each do |row|
  row.each do |cell|
    puts cell
  end
end
# 1, 2, 3, 4, 5, 6  (her biri kendi satırında)

Eğer örneğin her bir hücreyi etiketlemek için satır ve sütun indekslerine de ihtiyacınız varsa, her iki seviyede de each_with_index kullanın:

grid.each_with_index do |row, r|
  row.each_with_index do |cell, c|
    puts "(#{r},#{c}) = #{cell}"
  end
end

Bu stil, dizinleri elle takip etmekten daha kısa ve güvenlidir; bir satırın sonuna geçme riski yoktur.

challenge icon

Görev

Kolay

grid adlı 2D dizi verilmiştir (3 satır × 3 sütun tam sayı).

Her bir satır için, değeri o satırın ortalamasından kesinlikle büyük olan her hücreyi bulun. Bu tür her bir hücreyi şu formatta kendi satırına yazdırın:

(r,c) = value

İç içe each_with_index kullanın. Ortalamayı dış döngü içinde hesaplayın, böylece her satırın eşiği bağımsız olur.

Varsayılan ızgara için, kendi satır ortalamasını geçen hücreler şunlardır:

(0,1) = 8
(1,2) = 9
(2,0) = 6
(2,1) = 7

Kendin dene

grid = [
  [1, 8, 3],
  [4, 5, 9],
  [6, 7, 2]
]

# YAPILACAK: iç içe each_with_index, satır ortalamasından büyük olan hücreleri yazdır
quiz iconKendini test et

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

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Ruby derleyicisi