Golang döngüler için sadece for kullanır. Örnek üzerinden inceleyelim.

package main

import "fmt"

func main() {

    // Basit koşul
    x := 1
    for x <= 4 {
        fmt.Println(x)
        x = x + 1
    }

    // Klasik döngü
    for i := 7; i <= 10; i++ {
        fmt.Println(i)
    }

    // Sonsuz döngü
    for {
        fmt.Println("sonsuz döngü")
        break
    }

    // Kontrollü döngü (tek sayılar)
    for y := 0; y <= 9; y++ {
        if y%2 == 0 {
            continue
        }
        fmt.Println(y)
    }

    // Koşulsuz Sonsuz Döngü
    for i := 0; ; i++ {
        fmt.Println(i)
        if i == 4 {
            break
        }
    }
}

çalıştır!

1
2
3
4
7
8
9
10
sonsuz döngü
1
3
5
7
9
0
1
2
3
4

Basit Koşul

    x := 1
    for x <= 4 {
        fmt.Println(x)
        x = x + 1
    }

Döngüden önce tanımlanan i değişkeni for içerisinde değeri arttırılarak diğer dillerdeki while benzeri bir yöntemle kullanılıyor. Burada atanan değer eşitliği (x <= 4) sağladığında döngümüz sonlanıyor.

Klasik Döngü

    for i := 7; i <= 10; i++ {
        fmt.Println(i)
    }

Klasik döngü de diğer dillerden alışık olduğumuz değişken atama, eşitlik kontrolü ve değişkenin arttırılması işlemleri for ile birlikte tanımlanıyor. For içerisindeki işlemler bu kontröle göre devam ediyor.

Sonsuz Döngü

    for {
        fmt.Println("sonsuz döngü")
        break
    }

Sonsuz döngü herhangi bir koşul belirtilmeden for ile oluşturulabilir. İşlevi tamamladığında döngünün sonlandırılması için break kullanılmalıdır.

Kontrollü Döngü

    for y := 0; y <= 9; y++ {
        if y%2 == 0 {
            continue
        }
        fmt.Println(y)
    }

Döngü belirli bir koşulu sağladığında (örnekte y%2 ile değişkenin mod’u alınıyor) döngü continue ile bir sonraki adıma atlatılıyor. Yani döngü sonlanmıyor ve başa dönüp işlemlere devam ediyor.

Koşulsuz Sonsuz Döngü

    for i := 0; ; i++ {
        fmt.Println(i)
        if i == 4 {
            break;
        }
    }

Son anda koşulsuz döngüden bahsetmediğimi fark ettim. Bu örnekte değişken tanımlama ve değişkenin arttırımı belirtiliyor fakat herhangi bir koşul tanımlama sırasında belirtilmiyor. Aslında sonsuz döngü oluşturuyoruz ve break ile döngüden çıkış işlemini önceki örnekteki gibi unutmamalıyız. Örnekte 1, 2, 3, 4 ekrana yazılıp uygulama sonlandırılıyor.

NOT: range ile de bir dizi (array), kesit (slice) veya haritadan (map) veriyi for ile çekebilirsiniz. Bu konuya ileri ki yazılarda dizi çeşitlerini gördükten sonra detaylıca değineceğiz.

Kategori: