JavaScript Switch Deyimi
switch deyimi, program akışını bir değişkenin aldığı değere göre
yönlendirmek için kullanılan bir kontrol yapısıdır.
Özellikle çok sayıda else if içeren yapıları daha okunabilir hale getirir.
Ne Zaman Kullanılır?
- Bir değişkenin alabileceği değerler belliyse
- Çok sayıda
else ifyazmak istemiyorsan - Kodun okunabilirliğini artırmak istiyorsan
Switch Yapısının Genel Biçimi
JavaScript’te switch deyiminin genel yapısı aşağıdaki gibidir:
switch (kontrolEdilecekDegisken) {
case deger1:
// deger1 eşleşirse çalışır
break;
case deger2:
// deger2 eşleşirse çalışır
break;
default:
// hiçbir case eşleşmezse çalışır
}
Önemli Not
break komutu unutulursa, bir sonraki case de çalışır.
Bu duruma fall-through denir.
Basit Bir Switch Örneği
Aşağıdaki örnekte site değişkeninin değerine göre farklı mesajlar gösterilmektedir.
let site = "www.ME.com.tr";
switch (site) {
case "www.ME.com.tr":
alert("Şu anda bulunduğunuz sitenin adresi: www.ME.com.tr");
break;
case "www.ME.com.tr/forums":
alert("Şu anda forum sayfasındasınız.");
break;
default:
alert("Şu anda ME.com sitesinde değilsiniz.");
}
Bu yapıda yalnızca eşleşen case bloğu çalışır ve break ile çıkılır.
Birden Fazla Case’i Aynı İşlemde Kullanmak
Aynı işlemi birden fazla değer için yapmak mümkündür.
let gun = "Cumartesi";
switch (gun) {
case "Cumartesi":
case "Pazar":
console.log("Hafta sonu");
break;
default:
console.log("Hafta içi");
}
Püf Nokta
Bu kullanım, bilinçli yapılan bir fall-through örneğidir
ve oldukça yaygındır.
Switch ve IF–ELSE Karşılaştırması
- if / else if → Aralıklar ve karmaşık koşullar için uygundur
- switch → Sabit ve net değerler için daha okunaklıdır
- switch ifadeleri
===mantığıyla çalışır
İnce Detay
switch karşılaştırmaları tür dönüşümü yapmaz.
Yani 1 ile "1" eşit kabul edilmez.
Switch Kullanırken Sık Yapılan Hatalar
breakyazmayı unutmak- Aralık kontrolü için
switchkullanmak - Çok karmaşık
switchblokları oluşturmak defaultbloğunu eklememek
Özet
switch, çokluelse ifyapılarının temiz alternatifidirbreakkontrol akışını sonlandırır- Birden fazla
caseaynı işlemi paylaşabilir - Tip güvenlidir (
===mantığı)