Notlar(5) = 5%>
Bu durumda içinde 7 ayrı değişken tutabilecek olan Günler değişkeninin 1 numaralı olanının değeri "Pazartesi," 12 değer tutabilecek olan Aylar değişkeninin 3numaralı olanının değeri "Mart," 21 ayrı değer tutabilecek olan Ogrenciler değişkeninin 12 numaralı olanının değeri "Necip" ve nihayet 10 ayrı değer tutabilecekolan Notlar değişkeninin 5 numaralı olanının değeri ise 5 olacaktır. Böyle, birden fazla değer tutabilen değişkenlere Dizi Değişken veya
Array
denir.
Array Fonksiyonu
VBScript'in kullanılmaya hazır bir çok fonksiyonu vardır; bunlardan biri olan Array ile, kolayca dizi değişken oluşturabiliriz. Diyelim ki, Gunler(7) dizi-değişkeninigün adları ile doldurarak oluşturmak istiyoruz:
<%Dim Gunler = Array ("Pazartesi" , "Salı" , "Çarşamba" ,"Perşembe" , "Cuma" , "Cumartesi", "Pazar")%>
ile hem dizi-değişkeni oluşturabiliriz; hem de değerlerini atayabiliriz. Bu suretle oluşturduğumuz dizi değişkenin üyelerine daha sonra sıra numaraları ile atıftabulunabilirsiniz. Örneğin:
<%=Gunler(6)%>
bize Pazar'ı verir. Neden? Çünkü hayatlarının büyük bölümünü penceresiz ortamlarda geçiren kişiler olan dil tasarımcıları, sayı saymaya biz normal insanlar gibi1'den değil 0'dan başlarlar; dolayısıyla Gunler dizi-değişkeni Gunler(0)'dan başlar!Şimdi, aklınıza şu soru gelebilir: Dizi değişken oluşturacağımıza, neden "ogrenci1," "ogrenci2," "ogrenci3" diye değişkenler oluşturmuyoruz ve bunlara değerleratamıyoruz? Kötü soru! Dolayısıyla cevabını hemen verelim. Dizi değişkenlerde bir değişkene numarasıyla atıfta bulunabilirsiniz. Ve numara yerine bir başkadeğişkeni kullanabilirsiniz. Örneğin, OgrenciNo değişkeninizin değeri 12 ise
<%....If Ogrenciler(OgrenciNo) = "Necip"...%>
şeklinde bir döngü ile aradığınız öğrencinin Necip olup olmadığını sınayabiliriz. (Döngülere birazdan geliyoruz!)Başka programlama dillerine özellikle Visual Basic'e aşina olanların aklına şöyle bir soru gelebilir: VBScript'te değişkenin metin mi, sayı mı olduğunu ayırtetmiyor muyuz? Başka programlama dillerinde bir değişkenin değeri harf ve rakamlardan oluşuyorsa, yani matematik işlem yapmaya elverişli değilse bunlara
String
(Alfanümerik, karakter değerler) denir. Programlama dillerinde bir de matematik işlem yapmaya elverişli değişken türü vardır: Sayı (
Number
). VBScript,bir değişkene alfanümerik (karakter, metin) olarak atadığınız değeri çift tırnak içine almanızı ister. Sözgelimi
Ogrenci(12)
değişkeni için Necip değerini atamakistiyorsunuz: Necip kelimesini çift tırnak içine almak zorundasınız. Sayı olarak kullanacağınız değerleri ise tırnak içine almazsınız. (Sayı olarak kullanacağınızdeğerlerin sadece rakam olabileceğini söylemek gerekmez!) Fakat, işleri karıştıran nokta, VBScript açısından değişken türü diye bir şey olmamasıdır. VisualBasic, küçültülüp Script dili haline getirilirken, değişken türü özelliği alınmayınca, ortaya işleri karıştıran (veya kolaylaştıran) böyle bir durum çıkmış bulunuyor.Karışıklık, çift tırnak içinde verdiğiniz bir değeri matematik işlemde kullanmaya kalktığınızda karşınıza çıkabilir. Rakam olmayan bir karakter-dizisini birdeğişkene tırnaksız olarak atadığınızda VBScript "tanımsız değişken" vermeye kalktığınızı söyleyerek, duracaktır.VBScript'in bu eksikliğini gidermek için bazı ASP programcıları değişken adlarının önüne karakter-dizileri için "str" harflerini koyarlar: strAy, strOgrenciler, gibi.İsterseniz, VBScript'in karakter-dizisi ve sayı değişkenleri nasıl ayırt ettiğini veya etmediğini bir kaç örnekle görelim. Şu kodu yazarak, çalıştırın:
<% Option Explicit %><HTML><%Dim Degisken(2), ToplamDegisken(1) = "Necip"Degisken(2) = "Dayanır" Toplam = degisken(1) + Degisken(2)%><% =Toplam %></HTML>
Sonuç: "NecipDayanır" değil mi? (Arada boşluk olmamasına aldırmayın şimdilik!) Peki; şimdi Degisken(1) değeri olarak tırnak içine alarak 5, Degisken(2) değeriolarak yine tırnak içinde 10 yazın. Programı tekrar çalıştırın. Sonuç? 510!? Peki; tırnakları kaldırın 5 ve 10'un çevresinden. Sonuç? 15. Oh, neyse! Bir an içinVBScript matematik bilmiyor sandık! Bu durum VBScript'in matematik bilgisinin kıtlığından değil, tırnak içindeki değerlerin, VBScript ayrım yapmıyor bile olsa,karakter-dizisi (
String
) iken toplama işleminde ard arda eklenmesinden (
concatenate
) kaynaklanıyor. Tırnakları kaldırdığınızda, VBScript bu değerlerin sayıolduğunu anladı ve doğru işlemi, yani toplama işlemini yaptı. Şimdi VBScript'in değişkenleri ele alış tarzını daha iyi kavramak için Degisken(1) değeri olaraktırnak işareti koymadan kendi adınızı, Degisken(2) değeri olarak da soyadınızı yazın ve programı çalıştırın. Ne sonuç aldınız?VBScript'in kullandığı tek tür değişkene variant denir. Variant, karakter-dizini (
String
) de olabilir, sayı (
Number
) da. Fakat bir variant'ın içindeki değer, veriolarak nitelendiğinde şu türlerden birine girer:
3
Leave a Comment