Switch Case Nedir?
Yayın: · Son güncelleme:
Switch Case Nedir? Kısaca
Switch case, bir değişkenin değerini birden fazla seçenekle karşılaştırıp eşleşen seçeneğin kodunu çalıştıran koşul yapısıdır. Çok sayıda if-else yerine daha düzenli bir yazım sağlar.

Switch case nedir?
Switch case, tek bir değerin hangi seçeneğe eşit olduğuna bakarak ilgili kodu çalıştıran yapıdır. Örneğin bir sipariş durumunu düşünün: "hazırlanıyor", "kargoda", "teslim edildi" ve "iptal". Her durum için ayrı mesaj göstermek istediğinizde, art arda dört if-else yazmak yerine switch ile her seçeneği bir case olarak sıralarsınız.
Yapıda eşleşme bulunamazsa çalışacak bir default bölümü de bulunur. Bu bölüm, beklenmeyen bir değer geldiğinde programın sessizce bir şey yapmamasını önler.
Nasıl yazılır?
JavaScript, Java ve C gibi dillerde yazım birbirine benzer: switch (durum) satırının altında her seçenek case "kargoda": ile başlar ve sonuna break; eklenir. break unutulursa program bir sonraki seçeneğin kodunu da çalıştırır. Bu davranışa "düşme" (fall-through) denir ve bazen bilerek kullanılsa da çoğu zaman hata kaynağıdır.
Python'da uzun süre switch yoktu. 3.10 sürümüyle gelen match-case yapısı benzer bir işlev görür ve ayrıca daha gelişmiş desen eşleştirme imkânı sunar.
Ne zaman tercih edilir?
Switch, tek bir değişkeni sabit değerlerle karşılaştırdığınızda okunabilirliği artırır. Haftanın günü, menü seçimi ya da HTTP durum kodu gibi sınırlı seçenekli durumlar tipik örneklerdir. "Tutar 100 ile 500 arasındaysa" gibi aralık kontrolleri içinse if-else daha uygundur.
Bir switch yazdığınızda her case sonunda break olup olmadığını ve bir default tanımlayıp tanımlamadığınızı kontrol edin; bu iki kontrol, en sık görülen iki hatayı baştan önler.
Sıkça Sorulan Sorular
Switch case'de break neden gerekli?
Break, eşleşen seçeneğin kodu bittikten sonra switch yapısından çıkılmasını sağlar. Yazılmazsa program alttaki seçeneklerin kodunu da çalıştırır ve beklenmedik sonuçlar doğar.
Python'da switch case var mı?
Klasik switch yoktur, ancak Python 3.10 ile gelen match-case yapısı aynı işi görür. Daha eski sürümlerde bu iş için if-elif zinciri ya da sözlük kullanılır.