İç İçe Döngüler
Coddy'nin R Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 44 / 78.
İç içe döngü oluşturmak için bir döngüyü başka bir döngünün içine yerleştirebilirsin. İç döngü, dış döngünün her yinelemesinde tamamen çalışır; bu da kombinasyonlarla veya ızgara benzeri desenlerle çalışırken kullanışlıdır.
rows <- 3
cols <- 2
for (i in 1:rows) {
for (j in 1:cols) {
cat("i =", i, ", j =", j, "\n")
}
}Çıktı:
i = 1 , j = 1
i = 1 , j = 2
i = 2 , j = 1
i = 2 , j = 2
i = 3 , j = 1
i = 3 , j = 2i'nin her değeri için iç döngü, j'nin tüm değerleri boyunca ilerler. i 1 olduğunda, j 1'den 2'ye kadar gider. Ardından i 2 olur ve j yeniden 1'den 2'ye kadar başlar. rows ve cols hiç değişmez: bunlar yalnızca döngülere ne zaman duracaklarını söyler.
Pratik bir örnek, basit bir çarpım deseni oluşturmaktır:
for (row in 1:3) {
for (col in 1:3) {
cat(row * col, " ")
}
cat("\n")
}Çıktı:
1 2 3
2 4 6
3 6 9Dış döngü satırları kontrol ederken, iç döngü o satırdaki her sütunu işler. Her satırı tamamladıktan sonra bir sonraki satıra geçmek için yeni satır karakteri yazdırırız.
Görev
KolayGirdiden iki sayı oku: rows ve cols.
Her hücresinde satır numarası ile sütun numarasının toplamının bulunduğu bir sayı dikdörtgeni yazdırmak için iç içe döngüler kullan. Satırlar 1'den rows'a, sütunlar ise 1'den cols'a kadar numaralandırılır.
Her satırı kendi satırında, değerlerin arasında tek bir boşluk olacak şekilde yazdır. Çıktı için cat() kullan ve her satırdan sonra yeni satır ekle.
Örneğin, girdiler 3 ve 4 ise çıktı şöyle olmalıdır:
2 3 4 5
3 4 5 6
4 5 6 7İlk satırda (satır 1) değerler 1+1=2, 1+2=3, 1+3=4, 1+4=5 olur. İkinci satırda (satır 2) değerler 2+1=3, 2+2=4, 2+3=5, 2+4=6 olur ve böyle devam eder.
cat() verdiğin değerlerin arasına boşluk koyar; bu nedenle cat(row + col, "") sayıyı ve ardından tam olarak bir boşluk yazdırır.
Her döngü için yeni bir sayaç kullan (örneğin, satırlar için row ve bir satırdaki sayılar için col) ve bu sayacı rows veya cols ile karşılaştır. rows ve cols değerlerini değiştirme: her satırın yine cols sayıda değere ihtiyacı vardır.
Kendin dene
# Girdiyi oku
con <- file("stdin", "r")
rows <- as.integer(suppressWarnings(readLines(con, n = 1)))
cols <- as.integer(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: Kodunu aşağıya yaz
# Her hücresinde row + column bulunan bir dikdörtgen yazdırmak için iç içe döngüler kullan
# Değerleri aralarında boşluk bırakarak ve her satırdan sonra yeni satıra geçerek yazdırmak için cat() 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 (AND, OR)Mantıksal Operatörler Bölüm 2 (NOT)Özet - Basit MantıkVektörize Mantık Bölüm 1Vektörize Mantık Bölüm 27Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcıdan Girdi Alma10Farklı Bir FizzBuzz
Oyuna Genel BakışFizzBuzz Fonksiyonu2Değişkenler ve Veri Tipleri
Sayısal Veri TipiTam Sayı Veri TipiKarakter Veri TipiMantıksal Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıEksik Değerler: NAÖzet - Değişken Oluşturma8Döngüler
For DöngüsüWhile DöngüsüBreakNext (Continue)Özet - FaktöriyelDizi Oluşturma (seq, :)İç İçe DöngülerÖzet - Dinamik Girdi3Operatörler 1. Bölüm
Aritmetik OperatörlerTam Sayı Bölmesi ve Mod AlmaAtama OperatörleriÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Giriş-Çıkış
Print ÇıktısıÇıktı için Cat KullanımıDeğişkenlerle Çıktı Almakreadline() ile Girdi OkumaTip Dönüşümü TemelleriÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Fonksiyonlar
Fonksiyon TanımlamaFonksiyon ArgümanlarıDönüş DeğerleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Parametre DeğerleriKendi başına pratik yap: Online R derleyicisi