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.

javascript switch case

  
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

Bu forma girilen benim vereceğim sayılarla uyuşursa indirim checkbox aktif olacak. Kişi kart no girmeye başladımı verdiğim sayılarla uyuşursa formun yanına bi check ikonuda koyarsak doğru olunca o cıksın. yanlış girilirse x ikonu ekleyelim. verdiğim sayılar source kodda gözükmesin ama. Merhabalar. Benim bir textbox alanım var ve bu alana belirlediğim sayılardan giriş olursa checkbox aktif olsun istiyrum. Switch case ile yapılabilir mi bu? Örnek: Tanımladığım sayılar 111223, 112222, 114111, 115555 .... textboxa bu sayılardan başlayan sayılar girilirse checkbox aktif olsun yoksa pasif kalsın.

yönetici 13/06/2020

Yaşar, belirlediğin sayıları Dizinde tutacaksın, Dizindeki sayı ile if ifadesi kullanarak girilen sayı eşitse işlem yapacaksın.
Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlanacaktır.

2030

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
  • Laravel
POPÜLER MAKALE
  • HTML LİNK(Bağlantı)EKLEME - LİNK VERME
  • HTML YAZI VE RESİM ORTALAMA
  • HTML RESME LİNK VERME
  • HTML DİV ve SPAN NEDİR?
  • HTML FORM OLUŞTURMA
  • HTML KAYAN RESİM VE Marguee KULLANIMI
  • HTML RESİM EKLEME
  • CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
  • HTML ARKAPLANA MÜZİK EKLEME
  • HTML AÇIKLAMA SATIRI
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.