İç İçe Döngüler
Coddy'nin Swift Journey'sinin Temeller bölümünün bir parçası — ders 49 / 86.
İç içe geçmiş bir döngü, basitçe başka bir döngünün içindeki bir döngüdür. İç döngü, dış döngünün her bir yinelemesi için tüm yinelemelerini tamamlar.
for row in 1...3 {
for col in 1...2 {
print("Row \(row), Col \(col)")
}
}
// Çıktı:
// Satır 1, Sütun 1
// Satır 1, Sütun 2
// Satır 2, Sütun 1
// Satır 2, Sütun 2
// Satır 3, Sütun 1
// Satır 3, Sütun 2row'un her bir değeri için, iç döngü col'un tüm değerleri boyunca tamamen çalışır. Böylece 3 dış yineleme ve 2 iç yineleme ile, içerideki kod toplamda 6 kez çalışır (3 × 2).
İç içe döngüler, ızgara benzeri yapılarla çalışmak veya desenler oluşturmak için yaygın olarak kullanılır.
İşte yıldızlardan oluşan basit bir dikdörtgen yazdıran bir örnek:
for row in 1...2 {
for col in 1...4 {
print("*", terminator: "")
}
print("") // Bir sonraki satıra geç
}
// Çıktı:
// ****
// ****terminator: "" ifadesi, print fonksiyonunun yeni bir satır eklemesini engeller, böylece yıldızlar aynı satırda görünür. İç döngü bittikten sonra, print("") bir sonraki satıra geçer.
Görev
KolayGirdiden iki tam sayı okuyun: rows ve cols. Her hücrenin kendi satır numarası ile sütun numarasının çarpımını gösterdiği bir sayı ızgarası yazdırmak için iç içe döngüler kullanın.
Aşağıdaki girdileri alacaksınız:
- Birinci satır: satır sayısı (örneğin,
"3") - İkinci satır: sütun sayısı (örneğin,
"4")
Gereksinimler:
- Satırlar için bir dış döngü kullanın (1'den
rowsdeğerine kadar) - Sütunlar için bir iç döngü kullanın (1'den
colsdeğerine kadar) - Mevcut satır ve sütun numaralarının çarpımını yazdırın
- Aynı satırdaki değerleri bir boşlukla ayırın
- Her satır kendi satırında olmalıdır
İpucu: Değerleri aynı satırda tutmak için terminator: " " kullanın, ardından bir sonraki satıra geçmek için iç döngüden sonra print("") kullanın.
Örneğin, rows değeri 3 ve cols değeri 4 ise, çıktı şöyle olmalıdır:
1 2 3 4
2 4 6 8
3 6 9 12 Kopya kağıdı
Bir iç içe döngü, başka bir döngünün içindeki bir döngüdür. İçteki döngü, dıştaki döngünün her bir yinelemesi için tüm yinelemelerini tamamlar.
for row in 1...3 {
for col in 1...2 {
print("Row \(row), Col \(col)")
}
}
// Çıktı:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 23 dış yineleme ve 2 iç yineleme ile kod toplamda 6 kez çalışır (3 × 2).
İç içe döngüler, ızgara benzeri yapılar ve desenler için kullanışlıdır:
for row in 1...2 {
for col in 1...4 {
print("*", terminator: "")
}
print("") // Bir sonraki satıra geç
}
// Çıktı:
// ****
// ****print fonksiyonunun yeni bir satır eklemesini önlemek ve çıktıyı aynı satırda tutmak için terminator: "" kullanın. Bir sonraki satıra geçmek için iç döngüden sonra print("") kullanın.
Kendin dene
let rows = Int(readLine()!)!
let cols = Int(readLine()!)!
// YAPILACAK: Kodunuzu aşağıya yazın
// Bir çarpım tablosu yazdırmak için iç içe döngüler kullanın
// Dış döngü: satırlar arasında gezinin (1'den rows'a kadar)
// İç döngü: sütunlar arasında gezinin (1'den cols'a kadar)
// Satır * sütun çarpımını yazdırın
// Değerleri aynı satırda tutmak için print(..., terminator: " ") kullanın
// Bir sonraki satıra geçmek için iç döngüden sonra print("") kullanınBu 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
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüBileşik AtamaÖzet - Basit MatematikKarşılaştırma Operatörleri7Temel Giriş/Çıkış
Print FonksiyonuString InterpolationReadLine GirişiTür DönüşümüÖzet - 120'ye KadarÖzet - Doğru veya Yanlış10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriArgüman EtiketleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Değerler13Diziler Üzerinde Yineleme
Elemanlar Üzerinde YinelemeEnumerate MetoduStringler Üzerinde Yineleme P1Stringler Üzerinde Yineleme P22Değişkenler
Let vs VarTip BelirteçleriSayılarStringBooleanİsimlendirme KurallarıÖzet - Değişkenleri Başlatma5Operatö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 3Ternary Operatör8Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıGirdi Alma14İleri Seviye Diziler
Dizi Dilimleme Bölüm 1Dizi Dilimleme Bölüm 2Sıralı Yapı OperatörleriContains Metodu3Opsiyoneller
Opsiyoneller NedirIf Let ile UnwrappingGuard LetNil Coalescing OperatörüÖzet - Güvenli Unwrapping6Karar Yapıları
If İfadesiIf - ElseÖzet - Basit Hesap MakinesiSwitch İfadesiAralıklı Switch Kullanımı9Döngüler
For-In DöngüsüWhile DöngüsüRepeat-While DöngüsüBreakContinueÖzet - FaktöriyelDöngülerde Aralıklarİç İçe DöngülerÖzet - Dinamik Girdi