Menu
CoddyTech

İç İçe Döngülerden Çıkma

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

İç içe döngülerle çalışırken, normal bir break ifadesi yalnızca en içteki döngüden çıkar. Ancak Go, dış döngülerden doğrudan çıkmanı sağlayan etiketler sunar ve böylece karmaşık döngü yapıları üzerinde hassas bir kontrol elde edersin.

Etiket, bir döngünün önüne yerleştirdiğin ve ardından iki nokta üst üste gelen bir tanımlayıcıdır. Daha sonra, iç içe döngülerin içinden bile belirli bir döngüden çıkmak için break ifadesini ve ardından etiket adını kullanabilirsin.

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i == 1 && j == 1 {
            break outer
        }
        fmt.Printf("i=%d, j=%d\n", i, j)
    }
}

Bu örnekte, i == 1 && j == 1 koşulu sağlandığında, break outer hem iç hem de dış döngüden hemen çıkar. Bu, özellikle aradığınızı bulduğunuzda aramayı tamamen durdurmak istediğiniz 2B veri yapılarında arama yaparken kullanışlıdır.

challenge icon

Görev

Kolay

Bu meydan okumada, 2B bir ızgarada arama yaparken iç içe döngülerden çıkmak için etiketli break ifadelerini kullanma pratiği yapacaksın. Izgarada belirli bir hedef sayıyı bulman ve bulduğun anda aramayı durdurman gerekiyor.

İki girdi alacaksın:

  • Izgaranın boyutlarını "rows,cols" biçiminde temsil eden bir metin (ör. "3,4")
  • Aranacak hedef sayıyı temsil eden bir metin (ör. "7")

Aşağıdaki 2B sayı ızgarası sana veriliyor:

grid := [][]int{
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12},
}

Görevin:

  1. Yukarıdaki kodda senin için zaten okunan değerleri kullan: rows ve cols (ızgaranın ne kadarının aranacağı), target ve grid
  2. Izgarada arama yapmak için etiketli bir break kullanan iç içe döngüler kullan
  3. Hedef sayıyı bulduğunda "Found [target] at position ([row], [col])" yazdır ve etiketli break'i kullanarak hemen her iki döngüden de çık
  4. Hedefi bulamadan aramayı tamamlarsan "Target [target] not found" yazdır

Konum 0 tabanlı indeksleme kullanılarak belirtilmelidir (ilk satır 0, ilk sütun 0).

Kendin dene

    // TODO: Kodunuzu aşağıya yazın
    // Hedefi aramak için etiketli break ile iç içe döngüler kullanın
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 Go derleyicisi