switch - case - break
Javascript'te bu ifadeleri yazarken küçük harflerle yazdığınıza emin olunuz.
switch
ile if
benzer işlemler için kullanılır. if
koşula göre switch
duruma göre çalışır. Örnek.
let gun = prompt('Lütfen 1-7 arasında bir sayı giriniz','1');
switch (gun) {
case '1': alert('Pazartesi'); break;
case '2': alert('Salı'); break;
case '3': alert('Çarşamba'); break;
case '4': alert('Perşembe'); break;
case '5': alert('Cuma'); break;
case '6': alert('Cumartesi'); break;
case '7': alert('Pazar'); break;
}
switch - case
ile tiplerin önemi vardır. Sıkı eşitlik kullanır. prompt
ile aldığımız her verinin string
tipinde olduğunu biliyoruz. O halde deneyelim.
let gun = prompt('Lütfen 1-7 arasında bir sayı giriniz','1');
switch (gun) {
case 1: alert('Pazartesi'); break;
case 2: alert('Salı'); break;
case 3: alert('Çarşamba'); break;
case 4: alert('Perşembe'); break;
case 5: alert('Cuma'); break;
case 6: alert('Cumartesi'); break;
case 7: alert('Pazar'); break;
}
//hiçbir uyarı vermez.
Yukarıdaki örnekten hiçbir uyarı alamazsınız çünkü gun
değişkeninin veri tipi string
ve biz number
tipinde karşılaştırmalar yaptık. switch
deyimi sıkı eşitlik kullandığı için hiçbir durum gerçekleşmedi.
switch - case
yapısında bir durumun gerçekleşmesi ile yürütme başlar ve ilk break
komutuna kadar kodlar yürütülür. Bu sebeple her duruma break
komutu koymak gereklidir. Örnek.
let trafikLambasi = 'Sarı';
switch (trafikLambasi) {
case 'Kırmızı':
alert('BEKLE');
case 'Sarı':
alert('HAZIR OL');
case 'Yeşil':
alert('İLERLE');
}
Yukarıdaki örneği 'Yeşil' yaparak denerseniz sadece 'İLERLE' uyarısı alırsınız. 'Kırmızı' yaparsanız tüm durumlardaki uyarılar çalışır. Deneyebilirsiniz.
switch
yapısında case
ile ifade ettiğiniz hiçbir durum gerçekleşmez ise default
deyimi ile durum gerçekleşmesine bağlı olmadan kodlar yürütebilirsiniz. En sonda yazılması gereklidir. Örnek.
let httpRes = '301';
switch (httpRes) {
case '200':
alert('BAĞLANTI BAŞARILI');
break;
case '404':
alert('SAYFA BULUNAMADI!');
break;
case '500':
alert('SUNUCU HATASI');
break;
default: // hiçbir case ile uyuşmadığı için burası çalışır.
alert('Bilinen bir http durumu belirtilmedi.');
}
case
Gruplama
case
GruplamaBazı durumlarda aynı şeyleri yapmak gerekiyorsa kodları tekrar etmeye gerek kalmadan case
deyimlerini alt alta yazarak gruplayabilirsiniz. Örnek.
let ay = prompt('Küçük harflerle bir ay ismi giriniz:', '');
switch (ay) {
case 'aralık':
case 'ocak':
case 'şubat':
alert('Kış mevsimindesiniz.');
break;
case 'mart':
case 'nisan':
case 'mayıs':
alert('İlkbahar mevsimindesiniz.');
break;
case 'haziran':
case 'temmuz':
case 'ağustos':
alert('Yaz mevsimindesiniz.');
break;
case 'eylül':
case 'ekim':
case 'kasım':
alert('Sonbahar mevsimindesiniz.');
break;
default:
alert('Doğru bir şekilde giriş yapmadınız.');
}
switch
ile if
kullanımının bazı farkları aşağıda verilmiştir.
Koşula göre çalışır. Koşul her zaman Boolean
tipindedir.
Duruma göre çalışır. Durum herhangi bir tipte olabilir.
Yürütülecek kodları koşula göre if - else - else if
ile farklılaştırırız.
Yürütülecek kodları duruma göre case - default
ile farklılaştırırız.
Değişken tipleri önemsizdir. Koşuldaki ifadeye göre Boolean
sonuç üzerinden kodlar yürütülür.
Değişken tipleri önemlidir. Durumdaki değer ve tip üzerinden kodlar yürütülür.
Gerçekleşen koşul ile ilgili blok yürütülür.
Gerçekleşen durumla birlikte ilk break
komutuna kadar kodlar yürütülür.
Koşullarda <=
, >=
, !=
, !==
, ==
veya ===
ile karşılaştırmalar yapabiliriz.
Durumlarda her zaman sıkı karşılaştırma (===
) yapılır.
Koşullar mantıksal operatörler ile birbirine bağlanır.
Durumlar gruplanarak birbirine bağlanır.
Hiçbir koşul gerçekleşmez ise else
deyimi ile kod bloğu yürütebiliriz.
Hiçbir durum gerçekleşmez ise default
deyimi ile kodlarımızı yürütebiliriz.
Last updated