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 if yazmak 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

  • break yazmayı unutmak
  • Aralık kontrolü için switch kullanmak
  • Çok karmaşık switch blokları oluşturmak
  • default bloğunu eklememek

Özet

  • switch, çoklu else if yapılarının temiz alternatifidir
  • break kontrol akışını sonlandırır
  • Birden fazla case aynı işlemi paylaşabilir
  • Tip güvenlidir (=== mantığı)