1 Koşullu İfadelerin Genel Bakışı
Koşullu ifadeler, programlamada programların mantıksal akışını kontrol etmek için önemli araçlardır. Golang'da koşullu ifadeler diğer programlama dillerine benzer, ancak kendi özelliklerine sahiptir. Bu ifadeler, doğru veya yanlış koşullara bağlı olarak hangi kodun çalıştırılacağına karar vermeye olanak tanır ve kodun esnekliğini ve bakımını büyük ölçüde arttırır.
2 if İfadesi
2.1 if İfadesinin Temel Kullanımı
if
ifadesi, Go dilindeki en temel koşullu ifadedir. Sözdizimi aşağıdaki gibidir:
if koşul {
// Koşul doğru olduğunda çalıştırılacak kod
}
İşte basit bir örnek:
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x 5'ten büyük")
}
}
Bu kod, x
'in 5'ten büyük olup olmadığını kontrol edecek ve eğer öyleyse, yazdırma işlemini gerçekleştirecektir.
2.2 Koşullu İfadeler
Koşullu ifadeler, karşılaştırma operatörleri (örneğin, ==
, !=
, <
, >
, <=
, >=
) ve mantıksal operatörler (örneğin, &&
(VE), ||
(VEYA), !
(DEĞİL)) içerir.
Örneğin, bir değişkenin belirli bir aralıkta olup olmadığını kontrol etmek için:
y := 20
if y >= 10 && y <= 30 {
fmt.Println("y 10 ile 30 arasında")
}
Yukarıdaki koşullu ifade, &&
mantıksal operatörünü kullanarak y
'nin 10 ile 30 arasında olmasını sağlar.
2.3 if...else ve else if Yapısı
if
koşulu karşılanmadığında, alternatif bir kod bloğunu çalıştırmak için else
kullanabiliriz. else if
ise birden fazla koşulu kontrol etmemize olanak tanır. İşte bir örnek:
puan := 88
if puan >= 90 {
fmt.Println("Mükemmel")
} else if puan >= 80 {
fmt.Println("İyi")
} else if puan >= 70 {
fmt.Println("Orta")
} else {
fmt.Println("Düşük")
}
Bu kod, puan
'ın değerine bağlı olarak farklı değerlendirmeleri yazdıracaktır.
3 switch İfadesi
3.1 switch'in Temel Sözdizimi
switch
ifadesi, özellikle birden fazla değerin değerlendirilmesi gereken durumlar için uygun olan daha kısa bir koşullu dal ifadesidir. switch
ifadesinin temel sözdizimi aşağıdaki gibidir:
switch ifade {
case değer1:
// değer1 eşleştiğinde çalıştırılacak kod
case değer2:
// değer2 eşleştiğinde çalıştırılacak kod
default:
// Varsayılan olarak çalıştırılacak kod
}
Eğer ifade
'nin değeri case
'den sonra gelen değere eşitse, ilgili kod bloğu çalıştırılacaktır.
3.2 switch Fallthrough
Go'nun switch
ifadesinde, her dal, varsayılan olarak bir sonraki duruma geçmez, ancak fallthrough
anahtar kelimesi kullanılmadıkça.
switch sayı {
case 1:
fmt.Println("Bir")
fallthrough
case 2:
fmt.Println("İki")
default:
fmt.Println("Ne Bir Ne İki")
}
Yukarıdaki kodda, eğer sayı
1 ise, case 1
e eşleşmesine rağmen, fallthrough
anahtar kelimesinin varlığı nedeniyle program case 2
'deki kodu çalıştırmaya devam eder ve "İki"yi yazdırır.
3.3 Tür Dalma ve Özel Dalma
switch
ifadesi ayrıca değişken türlerine dayalı dalma (type branching) desteği sunar. Ayrıca, daha karmaşık özel dalma koşullarını oluşturabiliriz.
Tür dalma örneği:
var i interface{} = 1
switch i.(type) {
case int:
fmt.Println("i bir tam sayıdır")
case float64:
fmt.Println("i bir float64'tür")
default:
fmt.Println("i başka bir türdür")
}
İhtiyaç duyulduğunda, daha karmaşık koşullu değerlendirmeleri gerçekleştirmek için özel dalma koşulları yazılabilir.
4 Pratik Egzersiz
Bu bölümde, gerçek dünya problemlerini çözmek için if
ve switch
ifadelerini kullanma becerinizi derinleştireceğiz. Somut programlama zorluklarıyla, if
ve switch
ifadelerini kullanarak Golang'daki koşullu ifadelerin anlayışını ve uygulamasını artıracaksınız.
Not Ortalaması Hesaplayıcı
Haydi basit bir not ortalaması hesaplayıcı yazalım. Bu program, kullanıcı tarafından girilen puanına göre karşılık gelen notu belirleyecek ve çıktı olarak verecek. Notlandırma kriterleri şöyle:
- 90 ve üzeri puanlar için A
- 80 ile 89 arasındaki puanlar için B
- 70 ile 79 arasındaki puanlar için C
- 60 ile 69 arasındaki puanlar için D
- 60'dan düşük puanlar için F
Bu işlevselliği uygulamak için ya bir if
ifadesi ya da bir switch
ifadesi kullanabiliriz. İlk olarak, bir if
ifadesi kullanarak bir örnek inceleyelim:
package main
import (
"fmt"
)
func main() {
var puan int
fmt.Print("Lütfen puanı girin: ")
fmt.Scan(&puan)
if puan >= 90 {
fmt.Println("Not: A")
} else if puan >= 80 {
fmt.Println("Not: B")
} else if puan >= 70 {
fmt.Println("Not: C")
} else if puan >= 60 {
fmt.Println("Not: D")
} else {
fmt.Println("Not: F")
}
}
Bu kodda, öncelikle kullanıcının girdiği puanı saklamak için bir puan
değişkeni bildiriyoruz. Kullanıcının girdisini almak için fmt.Scan
işlevini kullanıyoruz. Sonra, puan için karşılık gelen notu belirlemek için birkaç if
ve else if
ifadesi kullanıyoruz ve notu çıktı olarak vermek için fmt.Println
işlevini kullanıyoruz.
Şimdi, bir switch
ifadesi kullanarak bir örnek inceleyelim:
package main
import (
"fmt"
)
func main() {
var puan int
fmt.Print("Lütfen puanı girin: ")
fmt.Scan(&puan)
switch {
case puan >= 90:
fmt.Println("Not: A")
case puan >= 80:
fmt.Println("Not: B")
case puan >= 70:
fmt.Println("Not: C")
case puan >= 60:
fmt.Println("Not: D")
default:
fmt.Println("Not: F")
}
}
Switch
ifadesi kullanarak yapılan örnekte, kod yapısı daha kısa ve açıktır. Birçok ardışık if
ve else if
ifadeleri kullanmaya gerek yoktur; bunun yerine, switch
ifadesinden sonra her case
'de koşulları doğrudan belirtiriz. Önceki case
'in koşuluna uymayan puan, ilgili koşulu karşılayan case
'e otomatik olarak geçer veya default
durumuna ulaşana kadar devam eder, bu durumda da F
notunu yazdırır.
Artık koşullu ifadelerde if
ve switch
kullanmayı öğrendiniz, kendi programlarınızı yazmaya çalışarak ve prati yaparak anlayışınızı pekiştirebilirsiniz.
Gelecek bölümde, Go dilinde koşullu ifadelerin ustalığını pekiştirmenize yardımcı olacak daha fazla pratik problemi tanıtmaya devam edeceğiz.
Lütfen yukarıdaki kodun eğitim amaçlı olduğunu unutmayın. Pratik uygulamalarda, kullanıcı etkileşimi ve hata işleme gibi faktörlerin daha sağlam hale gelmesi için düşünülmesi gerekmektedir.