Değişkenler
Programcılıkta işlemlerimizi
değişkenlerle yaparız. değişkeni bir kap gibi
düşünebilirsiniz. Sözgelimi "Gün," değişkenin adı ise bu
değişkenin değeri Pazar, Pazartesi, Salı, vd., olabilir. Her
değişken, türüne göre, ya bir ya da daha fazla değer tutar.
Adından da anlaşılacağı gibi değişkenin değeri değişir! Bu
değişikliği biz yapabiliriz; programın kendisi yapabilir.
VBScript'te, bir çok başka
bilgisayar programlama dilinden farklı olarak değişkenlerin
tanımlanması veya "beyan edilmesi," "boyutlandırılması"
gerekmez. Belirtilmemiş, önceden tanımlanmamış bir değişkene
değer atamaya kalkarsanız, VBScript bunu mükemmel şekilde
kabul eder. Fakat bu kötü bir programcılıktır. İyi
programcılık değişkenlerin önceden beyan edilmesini
gerektirir. Bunu DIM komutuyla yaparız. DIM, Dimension
(boyutlandır) kelimesinden kısaltılmıştır. Pek akıllıca
görünmese de bu komut, bilgisayarın değişken yeri olarak bir
bellek alanının boyutunu belirtmesini sağlar. Örnekler:
<%
DIM Gun, Ay, Ogrenci, Not
Gun = "Pazartesi"
Ay = "Ocak"
Ogrenci = "Necip"
Not = 5
%>
Şimdi burada Gun, Ay,
Ogrenci, Not adıyla dört değişken oluşturduğumuzu ve bunlara
sırasıyla "Pazartesi," "Ocak," "Necip" ve "5" değerlerini
atadığımızı görüyorsunuz. Bu noktada VBScript
yorumlayıcısına sorsanız, "Peki, söyle bakalım, Gun
değişkeninin değeri nedir?" diye, yorumlayıcı size "Bunu
bilmeyecek ne var? Elbette Pazartesi'dir!" derdi. Belki bu
noktada siz de kendi kendinize "Pazartesi, Ocak ve Necip
kelimeleri tırnak içinde iken, acaba 5 rakamı neden tırnak
içinde değil?" diye soruyorsunuz. Güzel soru. Ama cevabı
için biraz bekleyeceksiniz.
Değişken isimleri, mutlaka
harfle başlamalıdır; içinde noktalama işaretleri bulunamaz
ve uzunluğu 255 karakteri geçemez.
////////////////KUTU////////////
Kötü programcılığı önlemek
için!
Değişkenleri tanımlamadan
kullanmak "kötü programcılıktır" demek, ilerde kendi
başınıza elinizle program hatası getirirsiniz demektir. Daha
sonra örneklerini göreceğiz; ASP, sitemize giren bir
ziyaretçiye bir oturum (Session) açar ve bazı değişkenleri
oturum boyunca aklında tutar. Bir sayfada kullandığınız bir
değişkeni, daha sonraki sayfada kullanabilmek için, bu
değişkenin değerinin yeni sayfada değişmemesi gerekir. ASP
programı yazarken, bazen gelişi-güzel değişkenlere değer
atayabilirsiniz. Neden? O anda aklınıza değişken adı olacak
kelime gelmediği için! Bu değişken adını daha önce
kullanmışsanız ve içinde biraz sonra kullanacağınız bir
değer varsa, değer değiştirilmiş olacaktır. VBScript,
savurgan ve dağınık programcılığı önlemek için OPTION
EXPLICIT imkanını verir. Bir ASP sayfasının birinci satırı
olarak
<% OPTION EXPLICIT %>
yazarsanız VBScript DIM
komutuyla belirlenmemiş değişken kullanmanıza izin vermez;
kullanırsanız hata verir ve durur.
Bu ifadenin işinize çok
yarayacağı bir diğer nokta, kodda değişken adını yazarken
hata yapmanızı önlemektir. VBScript sizin hata yaptığınızı
bilemeyeceği için yanlış kelimeyi yeni bir değişken
sayacaktır. Değer atamadığınız bu yeni değişkeni
kullandığınız yerlerde ya programınız hata verir, ya da
kendisine doğru görünen işlemler yapar, fakat beklediğiniz
sonucu elde edemezsiniz. OPTION EXPLICIT, yanlış yazdığınız
değişkeni yeni değişken sayarak önceden tanımlanmamış
değişken kullandığınızı düşünerek, duracaktır.
///////////////////////KUTU
BİTTİ/////////////
Peki, şöyle bir değişken
tanımlama acaba ortaya nasıl bir değişken çıkartır:
<%
DIM Gunler(31), Aylar(12),
Ogrenciler(210), Notlar(10)
%>
Bu yöntemle oluşturduğumuz
kodlarla elde edilecek "kaplar," birden fazla değer
tutabilir. Yani:
<%
DIM Gunler(7), Aylar(12),
Ogrenciler(21), Notlar(10)
Gunler(1) = "Pazartesi"
Aylar(3) = "Mart"
Ogrenciler(12) = "Necip"
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 3 numaralı 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 tutabilecek
olan 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.
//////KUTU////
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şkenini gü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ıfta bulunabilirsiniz. Ö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 gibi 1'den değil 0'dan başlarlar;
dolayısıyla Gunler dizi-değişkeni Gunler(0)'dan başlar!
/////////////////KUTU
BİTTİ///////////////
Ş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ğerler atamı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şka
değ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ırt etmiyor 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 atamak istiyorsunuz: 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ız değ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. Visual
Basic, 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 bir değ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), Toplam
Degisken(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ğeri olarak 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çin VBScript 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 olarak tı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, veri olarak nitelendiğinde şu türlerden
birine girer:
Boolean Değişkenin
değeri ya True (doğru) ya da False (yanlış) olur; True'nun
değeri -1, False'un değeri ise 0'dır.
Byte 0 ile 255
arasında bir sayısal değer olabilir.
Double Yüzen noktalı
değer denilen veri türüdür. Pozitif sayılar için 4.9E-324
ile 1.8E308 arasında, negatif sayılarda -4.9E-324 ile
-1.8E308 arasında bir değer alabilir.
Date/Time Önceden
belirlenmiş biçimlerde tarih ve zaman bilgisi içerir.
Empty Tanımlanmış
ancak henüz değer atanmamış (boş) değişken türüdür.
Error Programın hata
mesajlarını ve hata değerlerini tutar.
Integer Noktalık bölüm
içermeyen tamsayı verilerdir; değeri -32.768 ile +32.767
arasında olabilir.
Long Noktalık bölüm
içermeyen tamsayı verilerdir; değeri -2.147.483.648 ile
2.147.483.648 arasında olabilir.
Null İçinde veri
bulunmamak üzere tanımlanmış değişkenlerdir.
Object Windows OLE
Nesnelerini tutmak üzere tanımlanmış değişkenlerdir.
Single Yüzen noktalı
değer denilen veri türüdür. Pozitif sayılar için 1.4E-45 ile
3.4E38 arasında, negatif sayılarda -1.4E-45 ile -3.4E38
arasında bir değer alabilir.
String Alfanumerik
veri tutan değişkenlerin değeridir
Asp Derslerinin diğer Sayfaları için
tıklayınız
1
2
3
4
5
6
7 |