Şartlı ifadeler
Programcılığın temel yapıtaşı şartlı ifadelerdir. Biz programcı olarak düşünemeyen bir bilgisayara eğer şöyle olursa şöyle yap, böyle olursa böyle yap diyerek bir nevi onun bir olay karşısında karar vermesini sağlarız. Ve zaten programcılıkta bu demektir.
ASP dolayısıyla VBScript abisi VB´nin kullandığı tüm şartlı ifadeleri kullanır.
* If - Else - End If
Hemen hemen tüm programlama dillerinde var olan bu şartlı ifade ile eğer bir koşul gerçekleşiyor ise şunu yap eğer gerçekleşmiyor ise bunu yap deriz. Bu ifadenin temel yapısı aşağıdaki gibidir.
If koşul Then Koşul sağladığında yapılacaklar Else Koşul sağlanmadığında yapılacaklar End If
Örneğin: Dışardan gelen bir değişkenimiz olsun.
KOD:
Dim veri veri = Request.Form("veri") If Len(veri) < 1 Then Response.Write "Lütfen geçerli bir değer girin." Else Response.Write "Teşekkür ederiz." End If
Bu şartlı ifadenin bir diğer kullanım şeklinde Else ifadesini hiç kullanmadan sadece koşul sağlandığında bir iş yaptırıp koşul sağlanmazsa hiçbir şey yapmamasını sağlayabiliriz. Yukarda ki örneği şöyle yazabiliriz.
KOD:
If Len(veri) < 1 Then Response.Write "Lütfen geçerli bir değer girin." End If
VBScript eğer bu şekilde ki bir sınama durumunda yani koşul sağlandığında bir iş yaptırdığımız koşul sağlanmıyorsa bir işlem yaptırmadığımız ifadeyi End If kullanmadan tek satırda yazma imkanı veriyor. Yani yukarda ki örnek şöyle de yazılabilir.
KOD:
If Len(veri) < 1 Then Response.Write "Lütfen geçerli bir değer girin."
Aşağıda ki 3 örnekte aynı şartın değişik şekillerde yazılmasıdır ve aynı işi yapar. Hangisini kullanacağınız size kalmış.
Ancak bilmeniz gereken eğer ifadeyi birden çok satırda yazacak iseniz If ile başlayıp End If ile bitmek zorundadır.
KOD:
If Len(veri) < 1 Then Response.Write "Lütfen geçerli bir değer girin." Else End If ------------------- If Len(veri) < 1 Then Response.Write "Lütfen geçerli bir değer girin." End If ------------------- If Len(veri) < 1 Then Response.Write "Lütfen geçerli bir değer girin."
* If - ElseIf - End If
Eğer bir If ifadesinden sonra başka koşullar sınayacaksanız ElseIf ifadesi ile başka koşullar verebilirsiniz. İstediğiniz kadar ElseIf ifadesi kullanabilirsiniz. Ancak bu koşullar yazılış sırasına göre sınanır ve bir koşul tutarsa aşağıda kalan diğer koşullar denenmeden ifadeden çıkılır. Bu ifade mutlaka bir normal If ifadesi ile başlamalı daha sonra ElseIf ile devam etmelidir. Eğer alt alta yazdığınız koşullardan hiçbiri sağlanmazsa Else ifadesi ile yapılacak işi belirleyebilirsiniz.
If koşul1 Then Koşul1 sağlandığında yapılacaklar. ElseIf koşul2 Then Koşul2 sağlandığüında yapılacaklar. ElseIf koşul3 Then Koşul3 sağlandığında yapılacaklar. . . . Else Koşulların hiçbiri sağlanmadığında yapılacaklar. End If
Örneğin formdan gelen verimizin boş olmamasını, sayısal bir ifade olmasını ve 1 ile 100 arasında olmasını istiyoruz.
KOD:
Dim Veri Veri = Request.Form("Veri")
If Len(Veri) < 1 Then Response.Write "Lütfen geçerli bir değer girin." ElseIf IsNumeric(Veri) = False Then Response.Write "Lütfen sayısal bir değer girin." ElseIf Veri < 1 Then Response.Write "Lütfen 1 den büyük bir değer girin." ElseIf Veri > 100 Then Response.Write "Lütfen 100 den küçük bir değer girin." Else Response.Write "Teşekkür ederiz." End If
Yine yukarda ki örneklerimizde olduğu gibi koşullarımızdan hiçbiri sağlanmadığında herhangi bir işlem yapmak istemiyorsak Else kısmını yazmayabiliriz.
* Select - Case
Select Case ifadesi If - ElseIf ifadesinin eğer sorgulama tek koşulun birden çok sonuca uyup uymadığının denenmesi şeklinde ise bunun daha derli toplu ifade edilmesi şeklinde bir şartlı ifadedir. Karmaşık bir cümle oldu hemen örnek üzerinde gösterelim.
Select Case Koşul Case değer1 Koşul değer1 e eşit olduğunda yapılacaklar Case değer2 Koşul değer2 ye eşit olduğunda yapılacaklar . . Case Else Koşul sınanan hiçbir değere eşit değilse yapılacaklar End Select
Bir örnek yapalım. Girilen değerin boş olmamasını ve 1,2,3 sayılarından farklı olmasını isteyelim.
KOD:
Select Case Request.Form("Veri") Case "" Response.Write "Lütfen bir değer girin." Case 1 Response.Write "Lütfen 1 dışında bir değer girin" Case 2 Response.Write "Lütfen 2 dışında bir değer girin." Case 3 Response.Write "Lütfen 3 dışında bir değer girin." Case Else Response.Write "Teşekkür ederiz" End Select
Eğer sınadığınız değer sayı değilde bir string ise değerleri iki tırnak işareti arasında yazmalısınız.
Eğer şartların hiçbiri sağlanmadığında herhangi bir işlem yapılmasını istemiyorsak Case Else kısmını yazmayabiliriz.
Eğer bir seferde birden fazla şart sınayacak isek bunları virgülle ayrılmış olarak Case yapısının yanına yazarız. Ve eğer bu şartlardan biri sağlanırsa o Case yapısı için belirttiğimiz işlem yapılır.
Mesela mevsimlerle ilgili bir uygulama yapalım.
KOD:
Select Case Month(Date()) Case 12,1,2 Response.Write "Kış mevsimindeyiz" Case 3,4,5 Response.Write "Bahar geldi, hoş geldi." Case 6,7,8 Response.Write "Yaz sıcakları da çekilmez oldu." Case 9,10,11 Response.Write "Sonbahar da ayrı bir güzel" End Select
Aynı işlemi If - ElseIf - End If ile de yapabilirken neden bunu tercih edelim derseniz bu ifade If - Else yapısından daha performanslı çalışır. Eğer işinizi Select - Case yapısı ile görebiliyorsanız If - Else yapısını tercih etmeyin derim.
Evet ASP ve VBScript sadece bu iki tip şartlı ifadeden oluşuyor ancak bunlar tüm işlerinizi göreceği için ayrıca bir şartlı ifade ihtiyacı zaten duymayacaksınız.
İyi çalışmalar
findikkurdu.com
|