DEV Community

Aydın Yakar
Aydın Yakar

Posted on • Updated on

Golang 101: Döngü (For)

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
        }
    }
}
Enter fullscreen mode Exit fullscreen mode
1
2
3
4
7
8
9
10
sonsuz döngü
1
3
5
7
9
0
1
2
3
4
Enter fullscreen mode Exit fullscreen mode

çalıştır!

Basit Koşul

    x := 1
    for x <= 4 {
        fmt.Println(x)
        x = x + 1
    }
Enter fullscreen mode Exit fullscreen mode

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)
    }
Enter fullscreen mode Exit fullscreen mode

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
    }
Enter fullscreen mode Exit fullscreen mode

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)
    }
Enter fullscreen mode Exit fullscreen mode

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;
        }
    }
Enter fullscreen mode Exit fullscreen mode

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.

Discussion (0)