Switch kelimesinin Türkçe’deki anlamı anahtardır. Switch deyimi de if-else deyimi gibi koşul üzerine çalışır. Yine teorik kısmı geçip anlaşılır olması için örnek yapalım. case deyimi durumu ifade eder. Koşul sağlandığı zaman işleme devam edilmez.
1
package main
2
import"fmt"
3
funcmain(){
4
i :=5
5
switch i {
6
case5:
7
fmt.Println("i eşittir 5")
8
case10:
9
fmt.Println("i eşittir 10")
10
case15:
11
fmt.Println("i eşittir 15")
12
}
13
}
Copied!
Çıktımız şu şekilde olacaktır;
i eşittir 5
Switch’te koşulların gerçekleşmediği zaman işlem uygulamak istiyorsak bunu default terimi ile yaparız. Örnek;
1
i :=5
2
switch i {
3
case5:
4
fmt.Println("i eşittir 5")
5
default:
6
fmt.Println("i bilinmiyor")
7
}
Copied!
Koşulsuz Switch
Switch’in tanımını daha iyi anlayabilmeniz için koşulsuz switch kullanımına örnek verelim. Bu yöntemde switch deyiminin yanına koşul girmek yerine case deyiminin yanına koşul giriyoruz.
1
package main
2
import"fmt"
3
funcmain(){
4
i :=5
5
switch{
6
case i ==5://i=5 olduğu için diğer case’ler sorgulanmaz
7
fmt.Println("i eşittir 5")
8
case i <10:
9
fmt.Println("i küçüktür 10")
10
case i >3:
11
fmt.Println("i büyüktür 3")
12
}
13
}
Copied!
Çıktımız şu şekilde olacaktır;
i eşittir 5
Sonraki Koşulu Kontrol Ettirme
Durumlar içerisinde kontrol etmemiz gereken başka durumlarda olabilir. Bunun için fallthrough deyimini kullanabiliriz.
1
package main
2
3
import"fmt"
4
5
funcmain(){
6
x :=5
7
switch{
8
case x ==5:
9
fmt.Println("x 5'tir")
10
fallthrough
11
case x <10:
12
fmt.Println("x 10'dan küçüktür")
13
14
}
15
}
Copied!
Çıktımız aşağıdaki gibi olacaktır.
x 5'tir
x 10'dan küçüktür
Switch'e Özel Değişken Tanımlama
Tıpkı If deyimindeki Switch içerisinde kullanabileceğimiz değişkenler tanımlayabiliriz.