javaScript Switch Case Kullanımı
Switch case yapısı, çok durumlu dallanma ifadelerinde if-else blokları yerine tercihen kullanılırlar. Switch-case ile yapılabilecek tüm işlemler if-else kod bloğu ile de yapılabilmektedir. Fakat kod okunabilirliğini arttırdığı için birçok programcı switch-case
yapısını karmaşık if-else
blokları yerine kullanmaktadır.
Şimdi şöyle birşey düşünüyor olabilirsiniz switch ile yaptığınız işi if yapısı ile de yapabilirim diyorsunuz, doğru düşünüyorsunuz switch-case
yapısı bize ne fayda sağlayacak derseniz, switch-case
yapısının avantajı daha düzenli kod yazmamızı ve ölçülen performans (hızı) if...Else.if
yapısına göre hızlı çalışmasıdır. Kullanımı şu şekildedir.
switch(ifade){
case 1:
//Yürütülmesi gereken Kod
break;
case 2:
//Yürütülmesi gereken Kod
break;
case n:
//Yürütülmesi gereken Kod
break;
default:
//Yukarıdaki kodların hiçbiri uygulanmadığında
//yapılacak olan default kodu
}
Switch-case
yapısının şu şekilde çalışmakta. Öncelikle switch parantezi içerisindeki ifadenin değeri hesaplanır. Hesaplanan değerle eşleşen case ifadesi bulunursa, o bloktaki kodlar çalıştırılır. Eğer hiçbir case bloğuyla eşleşme sağlanmazsa default bloğunda belirtilen komutlar çalışacaktır. Break deyimi her case bloğundan sonra mutlaka kullanılmalıdır. Çünkü istenen kod bloğu çalıştırılmış olmasına rağmen, break deyimi kullanılmazsa switch dışına çıkılmadan aşağıdaki case bloklarına doğru akış devam eder. Herbir koşuldan sonra ve default deyiminden sonra iki nokta üstüste (:) işareti kullanıldığına dikkat ediniz.
var sayi=1;
switch ($sayi){
case 0:
alert ("Sayı 0'dır.");
break;
case 1:
alert ("Sayı 1'dir.");
break;//Ekran çıktısı
case 2:
alert ("Sayı 2'dir.");
break;
case 3:
alert ("Sayı 3'dir.");
break;
default:
alert ("Sayı belli değildir.");
}
Burada sayi değişkeninin değerlerine bakıyoruz. Değeri 1 olduğundan ekrana Sayı 1'dir; yazacaktır. Bir de bu yapıyı if...else.if
yapısı ile yapalım:
var sayi=1;
if(sayi==0)
echo "Sayı 0'dır.";
else if(sayi==1)
echo "Sayı 1'dir."; //Ekran çıktısı
else if(sayi==2)
echo "Sayı 2'dir.";
else if(sayi==3)
echo "Sayı 3'dir.";
else
echo "Sayı belli değildir.";
Görüldüğü üzere aynı işlemi rahatlıkla if...else.if
ile de yapabilirsiniz. Tercih sizindir. Hızlı çalışması bakımdan büyük sistemlerde switch özelliğini mutlaka kullanın.
Anahtar ifadesi de bir ifade içerebilir. Bir ifadenin sonucuna uyan bir blok yürütülür.
var a = 3;
switch (a/3) {
case 1:
alert("case 1 Çalıştı");// case 1
break;
case 2:
alert("case 2 Çalıştı");
break;
case 3:
alert("case 3 Çalıştı");
break;
case 4:
alert("case 4 Çalıştı");
break;
default:
alert("default case ");
}
Yukarıdaki örnekte, anahtar deyimi, 3/3=1 olacak yukarıdaki örnekte case 1 çalışacak.
Anahtar ayrıca dize tipi ifade de içerebilir.
var meyve="Şeftali";
switch (meyve){
case "Kiraz":
alert("Yaz meyvesi"); break;
case "Mandalin":
alert("Kış meyvesi"); break;
case "Erik":
alert("Bahar meyvesi"); break;
case "Şeftali":
alert("Yaz meyvesi"); break;//Ekran çıktısı
default: alert("Herhangi bir mevsimin meyvesi");
}
Bir anahtar deyiminde birden çok durum birleştirilebilir.
var meyve="Mandalin";
switch (meyve){
case "Kiraz":
case "Karpuz":
case "Şeftali":
alert("Yaz meyvesi"); break;
case "Mandalin":
case "Portakal":
case "greyfurt":
alert("Kış meyvesi"); break; // Ekran çıktısı
case "Erik":
alert("İlkbahar meyvesi"); break;
}
Yukarıda ki örneği açıklamaya çalışalım. Bir durumdan sonra komut yazmak zorunda değilsiniz. Bu, sonraki duruma geçmek için kullanılır. Yaz meyvelerinden Kiraz , Karpuz olması fark etmiyor. Eğer bu durumlardan birine girilirse break olmadığı için şeftali meyvesine kadar gidilir ve ekrana yaz meyvesini yazar. Sonra break ile Kış meyvelerine geçişi engellenir.
Aynı mantıkla Mandalin , Portakal için break kullanılmayarak greyfurt meyvesine gidiliyor ve ekrana kış meyvesi yazılır. Break komutu ile çıkılır.
Şimdi basit bir hesap makinası programı yapalım:
var sonuc;
var islem="*";
var i1=10;
var i2=7;
switch (islem){
case "+": sonuc=i1 + i2; break;
case "-": sonuc=i1 - i2; break;
case "*": sonuc=i1 * i2; break;
default: sonuc=$i1 / $i2;
}
alert ("Sonuç..:" + sonuc); //ekran çıktı sonuç=70
YASAR SAHINOGLU 10/06/2020
yönetici 13/06/2020
- HTML
- CSS
- PHP
- JQUERY
- PHOTOSHOP
- JavaScript
- Web Dünyası
- Linux
- MİTHRİL FRAMEWORK
- Laravel
- Git
- React
- HTML LİNK(Bağlantı)EKLEME - LİNK VERME
- HTML YAZI VE RESİM ORTALAMA
- HTML RESME LİNK VERME
- HTML FORM OLUŞTURMA
- CSS YATAY MENÜ YAPIMI
- HTML RESİM EKLEME
- CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
- HTML DİV ve SPAN NEDİR?
- HTML ARKAPLANA MÜZİK EKLEME
- KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME