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
}
}
}
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.