Çoklu sayıda koşulun sınanması durumunda tercih edilir. Sayfa sonuna fallthrough ile ilgili bilgi eklendi, daha önce yazıyı okuyanlar o kısmı da tekrardan gözden geçirmelidir.
package main
import (
"fmt"
"time"
)
func main() {
// Genel Kullanım
i := 2
switch i {
case 1:
fmt.Println("i değişkeni 1'e eşittir.")
case 2:
fmt.Println("i değişkeni 2'ye eşittir.")
case 3:
fmt.Println("i değişkeni 3'e eşittir.")
}
// Çoklu Değer
switch time.Now().Weekday() {
case time.Saturday, time.Sunday:
fmt.Println("Hafta sonu..")
default:
fmt.Println("Hafta içi..")
}
// Koşullu Switch
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("Öğleden önce")
default:
fmt.Println("Öğleden sonra")
}
}
i değişkeni 2'ye eşittir.
Hafta içi..
Öğleden sonra
Genel Kullanım
i := 2
switch i {
case 1:
fmt.Println("i değişkeni 1'e eşittir.")
case 2:
fmt.Println("i değişkeni 2'ye eşittir.")
case 3:
fmt.Println("i değişkeni 3'e eşittir.")
}
Tanımlanan değişken case
ile eşit ise ilgili işlev gerçeleşir.
Çoklu Seçim
switch time.Now().Weekday() {
case time.Saturday, time.Sunday:
fmt.Println("Hafta sonu..")
default:
fmt.Println("Hafta içi..")
}
Günlerin Cumartesi ve Pazar olması durumu yani iki koşulunda gerçekleşmesi durumununa örnektir. Koşulun birden fazla sonuca uygunluğu bu yöntemle denetlenebilir.
Koşullu Switch
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("Öğleden önce")
default:
fmt.Println("Öğleden sonra")
}
Diğer örnekler de eşit
olması durumu göz önüne alınarak koşul belirtiliyordu fakat sonucun eşit olmaması durumları da switch
ile denetlenebilir.
YENİ BİLGİ: Yeni öğrendiğim fallthrough
komutu ile sonraki case’e yani koşula geçmesi sağlanabilir.
i := 45
switch {
case i < 10:
fmt.Println("i 10'dan küçük")
fallthrough
case i < 50:
fmt.Println("i 50'den küçük")
fallthrough
case i < 100:
fmt.Println("i 100'den küçük")
}
Bu durumda çıktı önce “i 50’den küçük” yazdıracak ve fallthrough
belirtildiği için sonraki case
e geçip “i 100’den küçük” yazdıracaktır.