1 Döngü İfadelerinin Genel Bakışı
Go dilinde, döngü ifadeleri bize bir kod bloğunu birden çok kez çalıştırmamıza olanak tanır. Belirli işlemleri tekrar tekrar gerçekleştirmeniz gerektiğinde, döngü ifadeleri çok yararlı olur. Örneğin, bir dizideki her elemanı tekrarlamak veya belirli bir koşul karşılanana kadar bir işlemi tekrar etmek isteyebilirsiniz. Go'da, döngü ifadeleri genellikle yalnızca for
anahtar kelimesi kullanılarak uygulanır ve Go dilindeki tek döngü ifadesidir. Döngü ifadelerinin doğru kullanımı, verimli ve sürdürülebilir kod yazmak için son derece önemlidir.
2 for
Döngüsünün Temelleri
2.1 for
Döngüsünün Yapısı
Go dilindeki for
döngüsü üç bölümden oluşur:
- Başlatma ifadesi: ilk tekrardan önce çalıştırılır, genellikle bir döngü sayacı bildirmek için kullanılır.
-
Koşul ifadesi: her tekrardan önce değerlendirilir. Eğer koşul
true
ise, döngü gövdesi çalıştırılır. - Sonraki ifade: her tekrarın kod bloğundan sonra çalıştırılır, genellikle döngü sayacını güncellemek için kullanılır.
for
döngüsünün sözdizimi aşağıdaki gibidir:
for başlatma ifadesi; koşul ifadesi; sonraki ifade {
// döngü gövde kodu
}
2.2 for
Döngüsünün Basit Bir Örneği
for
döngüsünün yürütme sürecini basit bir örnek üzerinden anlayalım:
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println("i'nin değeri:", i)
}
}
Bu örnekte, değişken i
0
olarak başlatılır. for
döngüsü, i < 5
koşulunun doğru olup olmadığını kontrol eder. Koşul doğruysa, döngü gövdesi çalıştırılır ve i
değeri yazdırılır. Döngü gövdesi çalıştırıldıktan sonra, i
değeri i++
(artırma işlemi) ile güncellenir ve ardından döngü koşulu i
değeri 5
olduğunda false
olana kadar tekrar kontrol edilir ve for
döngüsü sona erer.
2.3 Diğer for
Döngüsü Örnekleri
Go dilindeki for
döngüsü çok esnektir ve farklı senaryoları ele almak için çeşitli biçimlerde yazılabilir.
2.3.1 Sonsuz Döngü
Go'da, for
döngüsünün başlatma ifadesi, koşul ifadesi ve sonraki ifadesi atlanarak, bir break
ifadesi veya bir fonksiyonun dönüş değeri tarafından sonlandırılana kadar sürecek sonsuz bir döngü oluşturabilirsiniz.
for {
// Sonsuz döngü içindeki kod
if bazıKoşul {
break // Belirli bir koşul karşılandığında döngüden çık
}
}
2.3.2 Sadece Koşul İçeren Döngü
Go'da, diğer programlama dillerindeki while
döngüsüne benzer şekilde, yalnızca bir koşul içeren bir for
döngüsü de kullanabilirsiniz.
n := 0
for n < 5 {
fmt.Println(n)
n++
}
Yukarıdaki kod 0
ile 4
arasını yazdırır ve döngü, n
değeri 5
olduğunda sona erer.
2.3.3 Bir dizi veya dilim üzerinde döngü
Go'da, range
anahtar kelimesi bir dizinin veya dilimin her bir elemanı üzerindeki iterasyonu basitleştirmek için kullanılır.
elemanlar := []int{1, 2, 3, 4, 5}
for indeks, değer := range elemanlar {
fmt.Printf("İndeks: %d, Değer: %d\n", indeks, değer)
}
Yukarıdaki kod, her elemanın endeksini ve değerini yazdıracaktır. Elemanların değerlerine sadece ihtiyacınız varsa, endeksi görmezden gelmek için _
kullanabilirsiniz.
for _, değer := range elemanlar {
fmt.Printf("Değer: %d\n", değer)
}
Not: Dizilerin kullanımı ileriki bölümlerde detaylı olarak açıklanacaktır. Eğer bu kısmı anlamadıysanız,
for
döngüsünün böyle kullanılabileceğini anlamanız yeterlidir.
2.3.4 Haritalar üzerinde döngü
Bir harita üzerinde döngü yaparken, for
döngüsü ve range
ifadesinin birleşimi çok güçlüdür. Bu size haritanın her bir anahtar-değer çiftini almanızı sağlar.
colors := map[string]string{"red": "#ff000", "green": "#00ff00", "blue": "#000ff"}
for key, value := range colors {
fmt.Printf("Anahtar: %s, Değer: %s\n", key, value)
}
Bu örnekte, colors
haritasındaki tüm anahtarları ve bunların karşılık gelen değerlerini yazdırıyoruz. Dilimler üzerinde döngü yaparken olduğu gibi, yalnızca anahtarı veya değeri gerekiyorsa, diğerini ihmal etmeyi seçebilirsiniz.
Not: Harita kullanımı detaylı bir şekilde daha sonraki bölümlerde açıklanacaktır. Eğer bu kısmı anlamazsanız endişelenmeyin, sadece
for
döngüsünün bu şekilde kullanılabileceğini anlamanız yeterlidir.
3 Döngülerin akışını kontrol etmek
3.1 Döngüyü sonlandırmak için break
kullanın
Bazı durumlarda belirli bir koşul karşılandığında döngüden erken çıkmamız gerekebilir, böyle durumlarda break
ifadesi kullanılabilir. Aşağıda break
kullanarak döngüden çıkmak için bir örnek bulunmaktadır:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
break // i 5 olduğunda döngüden çık
}
fmt.Println("i'nin değeri:", i)
}
// Çıktı sadece 0 ile 4 arasındaki değerleri içerecektir
}
3.2 İterasyonları atlamak için continue
kullanın
Belirli durumlarda, mevcut iterasyonu atlamak ve döngüdeki bir sonraki iterasyona devam etmek isteyebiliriz. Bunun için continue
ifadesi kullanılabilir. İşte bir örnek:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i%2 != 0 {
continue // i tek ise bu iterasyonu atla
}
fmt.Println("Çift sayı:", i)
}
}