IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 10 Temmuz 2021, 02:37   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Switch Yapısı




Switch Yapısı

Bu yapı aslında if yapısı ile hemen hemen aynıdır. Ancak bazı durumlarda if kullanmak daha kompleks bir hal alırken switch kullanmak bize daha kolay ve kısa bir yöntem olarak görülebilir. Switch deyimi if deyimine ne kadar benzese de if deyiminin yaptığı herşeyi yapamaz. Yine de bize bazı durumlarda fazlasıyla yardımcı olabilir.

Peki ne işimize yarayacak bu deyim? Bu yapıyı if yapısı ile eşdeğer tutarak ne işe yarayabileceğini düşünebilirsiniz. Nihayetinde bu da bir if benzeri yapıdır ve vereceğiniz koşula göre sınama yapıp size sonucu verir. Yazının devamında örnekler ile ne işe yarayacağını biraz da olsa anlayabileceksiniz.

Switch deyiminin yazılışını ve dizilişini öğrenmek için aşağıdaki örneği inceleyin:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Kod: switch ($tarih) { case "dmy"; echo date("d.m.Y"); break; case "dmygis"; echo date("d.m.Y G:i:s"); break; default: echo("Tarih türünü seçmediniz. Bu sebeple default tarih gösterimini görüyorsunuz:"); echo date("<b> d-m-Y G:i - l</b>"); }

Yukarıdaki kodu ilk olarak şekil yapısı olarak inceleyelim. Dikkatinizi çekti ise her koşul case ile tanımlanıp break ile sona erdiriliyor. Bu iki eleman switch deyiminin olmazsa olmazları diyebiliriz. Örnekte ilk olarak $tarih değişkeninin değeri sınanıyor ve bu koşullara bağlanıyor. Switch deyiminde de, if deyimine benzer bir şekilde değişken tanımlanıyor, daha sonra süslü parantez "{ }" açılıyor ve koşullar sıralanıyor. Tüm koşullar sıralandıktan sonra, eğer hiçbir koşul sağlanmıyorsa devreye gidecek olan default kısmı yer alıyor. Unutmamalıdır ki bu kısmın switch deyiminin sonunda olması daha iyi olacaktır, eğer ortalarda ya da en başta olursa deyim hatalı çalışabilir. Ayrıca default bölümü case kısımlarında olduğu gibi noktalı virgül ile değil, iki nokta üstüste işareti ile yazılır. Eğer noktalı virgül koyarsanız yine hata alırsınız.

Şimdi örneğimizi inceleyelim. Örnekte $tarih değişkeninin alacağı değerleri sınıyoruz ve bu değerlere göre koşullar yaratıp işlem yaptırıyoruz. Bu kodu ornek.php ismi ile kaydedip [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] olarak çalıştırırsanız ilk koşulumuz gerçekleşecek ve "09.03.2004" gibi bir çıktı alacaksınız. Aynı şekilde eğer ornek.php?tarih=dmygis olarak çalıştırırsanız "09.03.2004 20:12:17" gibi bir çıktı alırsınız. Eğer sadece [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] olarak çalıştırırsanız hiçbir koşul yerine gelmediğinden "Tarih türünü seçmediniz. Bu sebeple default tarih gösterimini görüyorsunuz: 09-03-2004 20:13 - Tuesday" çıktısını alırsınız. Yine eğer ornek.php?tarih=ffsafdasfdas gibi bir şekilde girmeye çalışırsanızda default kısmı devreye girer ve aynı çıktıyı alırsınız.

Dikkat etmeniz gereken şeyleri şu şekilde sıralayabiliriz:
Case ve default kısımlarının imla farklarına dikkat etmeliyiz. (Yukarıda anlatılan noktalı virgül ve iki nokta üstüste farkı.)
Case ile başlattığımız her koşulu mutlaka break ile sonlandırmalıyız. Eğer sonlandırmazsak ya hata verir ya da diğer break; komutuna kadar çalışmaya devam eder ve bozukluk yaratır.
Switch yapısına başlarken açtığımız süslü parantezi mutlaka deyimin sonunda kapatmalıyız.

Mesela bir site yapıyorsunuz ve bu sitenizin aynı diğer sitelerdeki gibi [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] gibi linkleri olsun istiyorsunuz. Bu durumda switch yapısı oldukça işlevseldir. Bunu if yapısı ile de yapabilirsiniz fakat switch if deyiminden bu durumlarda daha hızlı çalışacağı için ve daha işlevsel olacağı için önerilir. Yukarıdaki örneğe bakarak istediğiniz türden linkler yaratabilirsiniz.

Switch içerisine istenildiği kadar koşul tanımlanabilir, fakat ne kadar çok koşul olursa çalışma performansı o kadar düşecektir. Bu yüzden olabildiğince kısa tutmaya çalışmalıyız. Ayrıca switch deyiminin if deyiminden daha hızlı çalıştığı bilindiğinden, switch ile yapabileceğimiz işlemleri if ile yapmamalıyız. Yapsak bile sonuçta performans düşeceği için zararlı çıkan biz oluruz.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
switch yapısı


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
DIP SWITCH vioLeta Bilgisayar Sözlüğü 0 06 Kasım 2019 06:18
Java'da Switch-Case Yapısı ile Menü Kaf_Dağı Java 0 18 Mart 2015 14:57