İç İçe Döngüler
Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası. Ders 49 / 109.
İç İçe Döngüler, başka bir döngünün içine yerleştirilen döngülerdir. İç döngü, dış döngünün her yinelemesinde tamamen çalışır.
İç içe döngüler kullanarak 1-3 sayıları için bir çarpım tablosu oluşturalım:
rows := 3
cols := 3
for i := 1; i <= rows; i++ {
for j := 1; j <= cols; j++ {
fmt.Printf("%d×%d=%d\t", i, j, i*j)
}
fmt.Println()
}Bu kodu çalıştırdıktan sonra, her satırın dış döngü değişkeninin (i) iç döngü değişkeninin (j) tüm değerleriyle çarpımını temsil ettiği bir çarpım tablosu elde ederiz. Çıktı ekranda şöyle görünür:
1×1=1 1×2=2 1×3=3
2×1=2 2×2=4 2×3=6
3×1=3 3×2=6 3×3=9 Bunun nasıl çalıştığını adım adım anlayalım:
İlk olarak, dış döngü i=1 değerini ayarlar ve iç döngü tamamen çalışır:
i=1, j=1: prints "1×1=1"
i=1, j=2: prints "1×2=2"
i=1, j=3: prints "1×3=3"İç döngü tamamlandıktan sonra fmt.Println() ile yeni bir satır yazdırırız.
Ardından dış döngü i=2 değerini ayarlar ve iç döngü, j yine 1'den başlayarak baştan başlar:
i=2, j=1: prints "2×1=2"
i=2, j=2: prints "2×2=4"
i=2, j=3: prints "2×3=6"Son olarak, dış döngü i=3 değerini ayarlar ve iç döngü son bir kez çalışır:
i=3, j=1: prints "3×1=3"
i=3, j=2: prints "3×2=6"
i=3, j=3: prints "3×3=9"Her döngünün kendi sayacı vardır (i ve j) ve rows ile cols hiç değişmez: yalnızca döngülere ne zaman duracaklarını söylerler. Bu kalıp, veri tablolarıyla çalışmak veya ızgara benzeri yapılar oluşturmak için çok kullanışlıdır.
Görev
BaşlangıçBu meydan okumada, basit bir desen yazdırmak için iç içe döngüler kullanma alıştırması yapacaksın. Dış döngü satırlar boyunca, iç döngü ise küçük bir karakter ızgarası oluşturmak için sütunlar boyunca ilerleyecek.
3x3 yıldız işareti ızgarası (*) yazdırmak için iç içe döngüleri tamamla. Her yıldız işaretinden sonra bir boşluk gelmeli; bu nedenle her satır * * * (sonunda bir boşluk olacak şekilde) gibi görünmeli. Beklenen çıktı:
* * * * * * * * *
Her döngü için yeni bir sayaç kullan (örneğin, satırlar için i, bir satırdaki yıldızlar için j) ve bunu rows veya columns ile karşılaştır. rows ve columns değerlerini değiştirme: her satırda columns kadar yıldız olmalı.
Kendin dene
package main
import "fmt"
func main() {
// Izgaramızdaki satır ve sütun sayısı
rows := 3
columns := 3
// TODO: Yıldızlardan (*) oluşan bir ızgara yazdırmak için iç içe döngü oluştur
// Dış döngü satırlar üzerinde dönmeli
// İç döngü sütunlar üzerinde dönmeli
for i := 0; i < rows; i++ {
// Her sütuna yıldız yazdırmak için iç döngünü buraya ekle
// Bu, her satırdan sonra yeni bir satıra geçer
fmt.Println()
}
}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
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma Operatörleri - Bölüm 1Karşılaştırma Operatörleri - Bölüm 2Mantıksal VE OperatörüMantıksal VEYA OperatörüMantıksal DEĞİL OperatörüOperatör Önceliği TemelleriÖzet - Karşılaştırma Yapma7Kontrol Akışı: Döngüler
`for` Döngüsü Nedir?`for` Döngüsü - Temel`for` Döngüsü - Sadece Koşul`break` Anahtar Kelimesi`continue` Anahtar Kelimesiİç İçe DöngülerÖzet - İşlemleri Tekrarlama2Değişkenler ve Temel Veri Tipleri
Değişken nedir?`:=` ile Tür ÇıkarımıTam Sayılar (int)Ondalıklı SayılarBooleanlarStringlerSıfır DeğerlerSabitlerİsimlendirme KurallarıÖzet - Değişkenler ve Türler5Temel Giriş/Çıkış
Biçimlendirilmiş ÇıktıBiçim BelirteçleriVeri Tiplerini YazdırmaTemel Kullanıcı Girdisi AlmaÖzet - Giriş ve Çıkış8Fonksiyonlar
Fonksiyonları AnlamakFonksiyon TanımlamaFonksiyonları ÇağırmaFonksiyon ParametreleriTek Bir Değer DöndürmeBirden Fazla Değer Döndürmeİsimlendirilmiş Dönüş DeğerleriFonksiyon Kapsamı TemelleriÖzet - Yeniden Kullanılabilir Kod Oluşturma3Temel Operatörler
Aritmetik OperatörlerBölme OperatörüModulo OperatörüAtama OperatörüBileşik Atama OperatörleriArtırma ve AzaltmaÖzet - Hesaplamalar6Kontrol Akışı: Koşullu İfadeler
`if` İfadesi`else` Anahtar Kelimesi`else if` Anahtar Kelimesi`if` İçinde Değişken GölgelemeDeğişkenleri Başlatma`switch` İfadesiİfadeli `switch`İfadesiz `switch``fallthrough` Anahtar KelimesiÖzet - Karar VermeKendi başına pratik yap: Online Go derleyicisi