Programlama dünyasında, bir durumun değerine göre farklı işlemler yapmak oldukça yaygındır. Genellikle if
, else if
ve else
yapıları bu iş için kullanılır. Ancak bazen aynı değişkenin birçok farklı değerini kontrol etmemiz gerekir. Bu gibi durumlarda kod kalabalığına yol açmadan daha düzenli bir yapı kullanmak isteriz. İşte burada devreye switch
ifadesi girer.
Bu makalede JavaScript’in switch
yapısını öğreneceğiz. Konunun mantığını ve kullanım şeklini sade bir dille anlatacağız. Farklı örneklerle konuyu pekiştireceğiz.
1. Switch Yapısı Nedir?
switch
, belirli bir değişkenin değerine göre farklı kod bloklarının çalışmasını sağlar. Bu yapı, tek bir değişken için birçok koşul yazmamız gereken durumlarda if/else if
zincirine alternatif olarak kullanılır.
Basit Bir Tanım:
Aynı değişkenin birden fazla olasılığı varsa ve her olasılık için farklı bir işlem yapılacaksa, switch kullanmak kodu hem daha sade hem de daha okunabilir hale getirir.
2. Temel Switch Söz Dizimi
let animal = "cat";
switch (animal) {
case "dog":
console.log("Hav hav!");
break;
case "cat":
console.log("Miyav!");
break;
case "bird":
console.log("Cik cik!");
break;
default:
console.log("Tanımadığım bir hayvan!");
}
Açıklama:
switch (animal)
: Kontrol edilecek değişkeni belirtir.
case "cat"
: Eğer animal
değişkeni "cat"
değerine sahipse bu blok çalışır.
break
: Bu koddan sonra switch
yapısından çıkılır. Yazılmazsa diğer case’ler de çalışabilir (istenmeyen sonuçlar doğurabilir).
default
: Hiçbir case
eşleşmezse bu blok çalışır. Tıpkı else
gibi.
3. Break Kullanmanın Önemi
Break yazmazsak, eşleşen case
’den sonra gelen tüm case
blokları çalışmaya devam eder. Bu davranışa fall-through (aşağıya sarkma) denir.
Örnek – Break Olmadan:
let color = "yellow";
switch (color) {
case "red":
console.log("Dur");
case "yellow":
console.log("Dikkat");
case "green":
console.log("Geç");
}
Çıktı:
Dikkat
Geç
Burada color
değişkeni "yellow"
olduğunda sadece "Dikkat"
yazması gerekirken "Geç"
de yazdırılır. Çünkü break
kullanılmamıştır.
4. Default Kullanımı
default
bloğu, hiçbir case
eşleşmediği durumlarda çalışır.
Örnek:
let grade = "E";
switch (grade) {
case "A":
console.log("Mükemmel");
break;
case "B":
console.log("İyi");
break;
case "C":
console.log("Orta");
break;
default:
console.log("Geçerli bir not girilmedi");
}
Burada "E"
notu hiçbir case
ile eşleşmediği için default
bloğu devreye girer.
5. Aynı Sonucu Veren Birden Fazla Case
Bazen birden fazla değerin sonucu aynı olabilir. Böyle durumlarda case
’leri alt alta yazarak tek bir işlem bloğuna yönlendirebiliriz.
Örnek:
let day = "Saturday";
switch (day) {
case "Saturday":
case "Sunday":
console.log("Hafta sonu");
break;
case "Monday":
case "Tuesday":
case "Wednesday":
case "Thursday":
case "Friday":
console.log("Hafta içi");
break;
default:
console.log("Geçersiz gün");
}
day değişkeni "Saturday"
ya da "Sunday"
olduğunda "Hafta sonu"
yazdırılır. Hafta içi günleri için ise "Hafta içi"
yazılır.
6. Switch ile Sayı Kontrolü
Sadece metinlerle değil, sayılarla da switch
kullanılabilir.
Örnek:
let code = 404;
switch (code) {
case 200:
console.log("Başarılı");
break;
case 401:
console.log("Yetkisiz erişim");
break;
case 404:
console.log("Sayfa bulunamadı");
break;
default:
console.log("Bilinmeyen hata kodu");
}
Burada code
değeri 404
olduğu için "Sayfa bulunamadı"
mesajı ekrana yazdırılır.
7. Switch Ne Zaman Kullanılır?
Kullanılabilir:
- Aynı değişkenin farklı çok sayıda değeri varsa
- Her değerin sonucu birbirinden farklıysa
- Kodun okunabilirliğini artırmak istiyorsan
Tercih Edilmez:
- Değişkenler arasında karşılaştırma yapman gerekiyorsa (örneğin
>
, <
, !=
)
- Daha karmaşık mantık gerekiyorsa
8. If/Else mi Switch mi?
Her iki yapı da karar vermek için kullanılır. Ancak tercih duruma göre değişir:
Durum | Tercih |
Bir değişkenin sabit değerleriyle karşılaştırma yapılacaksa | switch |
Koşullar arasında kıyaslama yapılacaksa (> , < ) | if / else |
Kodun sade ve okunabilir olması gerekiyorsa (çoklu değer kontrolünde) | switch |
9. Sonuç ve Tavsiyeler
switch
yapısı JavaScript’te az ama öz kullanılan bir yapıdır. Çok sık karşına çıkmaz ama bazı özel durumlarda kodun okunabilirliğini ve düzenini artırır. Sadece tek bir değişkenin değeri kontrol edilecekse ve bu değer farklı çıktılar üretmek için kullanılıyorsa, switch
oldukça işlevseldir.
Ancak karmaşık ve çok yönlü karşılaştırmalarda if / else
yapısı daha esnektir.
Unutma: switch
kullanıyorsan her case
’in sonuna break
yazmayı ihmal etme!