İç İçe Döngüler
Coddy'nin Ruby Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 46 / 88.
İç içe geçmiş bir döngü oluşturmak için bir döngüyü başka bir döngünün içine yerleştirebilirsiniz. İçteki döngü, dıştaki döngünün her yinelemesinde tamamen çalışır; bu da bu kalıbı ızgaralar, tablolar veya kombinasyonlarla çalışırken kullanışlı kılar.
rows = 2
cols = 3
for i in 1..rows
for j in 1..cols
puts "i=#{i}, j=#{j}"
end
endBu, altı satır çıktı verir. i değerlerinin her biri için iç döngü, j değerlerinin tümünü dolaşır.
Önce i 1'dir, j ise 1, 2, 3 olur. Ardından i 2 olur ve j yeniden 1, 2, 3 olur. rows ve cols hiç değişmez: yalnızca döngülere ne zaman duracaklarını söylerler.
Pratik bir örnek, basit bir çarpım deseni oluşturmaktır:
for row in 1..3
for col in 1..3
print "#{row * col} "
end
puts ""
endBu, 3x3'lük bir ürün ızgarası yazdırır. print değerleri aynı satırda tutar ve puts "" her satır tamamlandıktan sonra yeni bir satıra geçer. Farklı döngü türlerini de karıştırabilirsiniz; örneğin bir for döngüsünün içinde bir times döngüsü kullanabilirsiniz.
Görev
KolayGirdiden iki tam sayı oku:
rows- satır sayısıcols- sütun sayısı
Verilen boyutlarda yıldızlardan (*) oluşan bir dikdörtgen yazdırmak için iç içe döngüler kullan. Her satırda aralarında boşluk bulunan cols yıldız olmalı ve her satır kendi satırında yer almalı.
Bir satırdaki yıldızlar için print, her satırdan sonra sonraki satıra geçmek için puts kullan.
Örneğin, girdiler 3 ve 4 ise çıktı şöyle olmalıdır:
* * * *
* * * *
* * * *Girdiler 2 ve 5 ise çıktı şöyle olmalıdır:
* * * * *
* * * * *Bir satırdaki son * karakterinden sonra boşluk yoktur.
Her döngü için yeni bir sayaç kullan (örneğin, satırlar için row ve bir satırdaki yıldızlar için col) ve bunu rows veya cols ile karşılaştır. rows ve cols değerlerini değiştirme: her satırda cols sayısı kadar yıldız gerekir.
Kendin dene
# Girdiyi oku
rows = gets.to_i
cols = gets.to_i
# TODO: Kodunu aşağıya yaz
# Yıldızlardan oluşan bir dikdörtgen yazdırmak için iç içe döngüler kullan
# Bir satırdaki yıldızları yazdırmak için print, sonraki satıra geçmek için puts kullanBu 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
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve CollectKendi başına pratik yap: Online Ruby derleyicisi