switch deyimi
if / else soru evet/hayır veya aralık olduğunda parlar. Bazen soru farklıdır: birkaç sabit değerden hangisi? Gün kodu 1…7, durum "ok" / "warn" / "err", menü anahtarı. Bu biçim için switch temiz araçtır. Dallamayı biliyorsunuz; burada bir değeri etiketli birkaç case ile eşleştirirsiniz.
switch ne yapar?
switch parantezdeki bir ifadeye bakar. Bu değeri her case etiketiyle karşılaştırır. Eşleşince o yolun deyimleri çalışır. break switch’ten çıkar; sonraki case’ler çalışmaz. default, hiçbir case eşleşmezse yedek yoldur.
Parçalar bir bakışta
📊 Gündelik switch parçaları
| Anahtar sözcük | Gündelik okuma | Tipik kullanım |
|---|---|---|
switch |
bu değere bak… | seçimi aç |
case |
bu etikete eşitse… | bir sabit seçenek |
break |
burada dur; switch’ten çık | eşleşmeden sonra bitir |
default |
hiçbir şey eşleşmediyse… | yedek yol |
Eşleşme katı eşitlik tarzındadır (=== fikri). Sayısal case, rakam dizisiyle eşleşmez. Değer ile etiketleri aynı biçimde tutun.
let day = 3;
switch (day) {
case 1:
console.log("Mon");
break;
case 2:
console.log("Tue");
break;
case 3:
console.log("Wed");
break;
default:
console.log("other");
}
Bir değer, birkaç etiketli yol
Burada day 3; case 3 yolu çalışır ve Konsol Wed yazdırır. 1 ve 2 case’leri kontrol edilip atlandı. break sonrası switch biter — default çalışmaz.
break olmadan JavaScript sonraki case gövdelerine de devam eder. Buna fall-through denir. Yeni başlayanlar neredeyse her tamamlanmış case’ten sonra break ister.
let day = 2;
switch (day) {
case 1:
console.log("Mon");
case 2:
console.log("Tue");
case 3:
console.log("Wed");
break;
default:
console.log("other");
}
break yoksa sonraki case’ler de çalışır
day 2. Eşleşme case 2’de başlar, Tue yazdırır, sonra case 3’e girer ve break öncesi Wed de yazdırır. Bir etiket istediniz; iki aldınız. Bilerek kod paylaşmıyorsanız her tamamlanmış case altına break koyun.
let day = 9;
switch (day) {
case 1:
console.log("Mon");
break;
case 2:
console.log("Tue");
break;
default:
console.log("other");
}
default «bunlardan hiçbiri»ni kapsar
day 9. Hiçbir case eşleşmez; default çalışır ve other görürsünüz. Beklenmeyen değerlerin de güvenli mesaja ihtiyacı varsa default kullanın. Sessizlik kabul edilebilirse atlayabilirsiniz.
let status = "warn";
switch (status) {
case "ok":
console.log("green");
break;
case "warn":
console.log("yellow");
break;
case "err":
console.log("red");
break;
default:
console.log("unknown");
}
Case’ler dize de olabilir
status "warn"; bu yüzden yellow görürsünüz. Form veya API’den kısa kodlar için dize case’leri yaygındır. «60–90 puan» gibi aralıklar hâlâ if / else if’tedir — switch ayrık etiket ister.
let day = 1;
let label;
switch (day) {
case 1:
label = "Mon";
break;
case 2:
label = "Tue";
break;
default:
label = "other";
}
console.log(label);
Eşleşmenin sonucunu adlandırın
Her case’te (ve default’ta) label atayın, sonra bir kez kullanın. Burada label "Mon" olur. if / else ile aynı kalıp — önce seç, sonra kullan.
Seçilen yolu sayfada gösterin
switch ile kısa bir mesaj üretin, sonra sayfaya yazın.
<!DOCTYPE html>
<html>
<head>
<title>Switch — page choice</title>
</head>
<body>
<p id="out">…</p>
<script>
let day = 3;
let msg;
switch (day) {
case 1:
msg = "Mon";
break;
case 2:
msg = "Tue";
break;
case 3:
msg = "Wed";
break;
default:
msg = "other";
}
let box = document.getElementById("out");
box.textContent = "day=" + msg;
</script>
</body>
</html>
day 3, sayfa day=Wed gösterir. day’i 9 yapıp yenileyin; day=other görmelisiniz. Sonraki ders (for) işi birçok kez tekrarlar; «hangi sabit etiket?» için araç switch kalır.
Kendiniz deneyin
let day = 1üzerinde case1için"Mon"kaydeden birswitchkurun.2ve3için case ekleyin; her birinden sonrabreak.day’i9yapın;default’un"other"kaydettiğini doğrulayın."ok","warn","err"ile dizestatusüzerinde switch yapın.- Geçici olarak bir
breakkaldırın; Konsolda fall-through izleyin. - HTML demoda yalnızca
day’i değiştirin, yenileyin, yeniday=metnini okuyun.
Sık hatalar
- Case’ten sonra
breakunutmak (sonraki case’ler de çalışır) - Açık aralıklar (
score >= 60) içinswitch—if/else ifdaha iyi - Türleri karıştırmak; sayı asla dize case ile eşleşmez
- Bilinmeyen değerlerin hâlâ mesaja ihtiyacı varken
default’u atlamak - Kontrol sabit etiket listesi değilken her
if’iswitchile değiştirmek
Özet
switchbir değeri birkaçcaseetiketiyle eşleştirirbreakeşleşmeden sonra switch’i durdururdefaulthiçbir şey eşleşmezse çalışır- Ayrık değerler için uygundur; aralıklar
if/else if’te kalsın - Sonucu sonra kullanacaksanız etiket saklayın; gerekirse sayfada gösterin
- Sonraki: for döngüsü — işi belirli kez tekrarlamak
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek