Menu
Coddy logo textTech

Belirli Bir Döngüye Devam Etme

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

Belirli döngülerden çıkmak için break ile etiketleri kullanabildiğiniz gibi Go, etiketleri continue ifadesiyle kullanmanıza da olanak tanır. Etiketli bir continue, belirtilen döngünün geçerli yinelemesini atlar ve bir sonraki yinelemesine geçer.

Bu, özellikle iç içe döngülerde, yalnızca iç döngüye devam etmek yerine, iç döngünün içinden dış döngünün geçerli yinelemesinin geri kalanını atlamak istediğinizde kullanışlıdır.

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i == 1 && j == 0 {
            continue outer
        }
        fmt.Printf("i=%d, j=%d\n", i, j)
    }
    fmt.Println("End of outer loop iteration")
}

Bu örnekte, i == 1 && j == 0 olduğunda, continue outer ifadesi iç döngü ve "End of outer loop iteration" mesajı da dâhil olmak üzere dış döngünün geçerli yinelemesinin geri kalanını atlar. Program daha sonra doğrudan, i değerinin 2 olduğu dış döngünün bir sonraki yinelemesine geçer.

challenge icon

Görev

Kolay

Bu görevde, iç içe döngülerin yürütülmesini kontrol etmek için etiketli continue ifadelerini kullanmayı uygulayacaksın. İç döngülerde bulunan koşullara göre belirli dış döngü yinelemelerini atlaması gereken bir veri işleme sistemi oluşturuyorsun.

İki girdi alacaksın:

  • İşlenecek satır sayısını temsil eden bir dize (ör. "4")
  • Atlama koşulu sayısını temsil eden bir dize (ör. "3")

Aşağıdaki 2D veri dizisi sana sağlanmıştır:

data := [][]int{
    {1, 2, 3, 4, 5},
    {6, 7, 8, 9, 10},
    {11, 12, 13, 14, 15},
    {16, 17, 18, 19, 20},
    {21, 22, 23, 24, 25}
}

Görevin:

  1. Kaç satır işleneceğini belirlemek için ilk girdiden satır sayısını ayrıştırmak
  2. İkinci girdiden atlama koşulu sayısını ayrıştırmak
  3. Verileri işlemek için etiketli bir continue içeren iç içe döngüler kullanmak
  4. Her satır için o satırdaki her sütun değerini kontrol etmek
  5. Bir satırın herhangi bir sütununda atlama koşulu sayısını bulursan, o satırın geri kalan işlemlerini atlamak ve sonraki satıra geçmek için etiketli continue kullanmak
  6. Atlama koşulu sayısını içermeyen satırlar için "Processing row [row_number]: [value1] [value2] [value3] [value4] [value5]" yazdırmak
  7. Atlama koşulu sayısını içeren satırlar için "Skipping row [row_number] due to condition" yazdırmak

Satır numaraları 0 tabanlı indeksleme kullanılarak bildirilmelidir (ilk satır 0'dır). Yalnızca ilk girdide belirtilen satır sayısını işleyin ve her satırın yalnızca ilk 5 sütununu kontrol edin.

Kendin dene

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // Girdiyi oku
    var rowsInput string
    var skipConditionInput string
    fmt.Scanln(&rowsInput)
    fmt.Scanln(&skipConditionInput)
    
    // Girdileri ayrıştır
    numRows, _ := strconv.Atoi(rowsInput)
    skipCondition, _ := strconv.Atoi(skipConditionInput)
    
    // Sağlanan 2D veri dizisi
    data := [][]int{
        {1, 2, 3, 4, 5},
        {6, 7, 8, 9, 10},
        {11, 12, 13, 14, 15},
        {16, 17, 18, 19, 20},
        {21, 22, 23, 24, 25},
    }
    
    // TODO: Kodunuzu aşağıya yazın
    // Veriyi işlemek için etiketli continue ile iç içe döngüler kullanın
    // Her satırı atlama koşulu numarası için kontrol edin
    // Koşulun bulunup bulunmadığına göre uygun mesajları yazdırı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