Programda
belli bir yere geldiniz. Elinizdeki degiskenin degerine göre hareket
etmeniz gerekiyor. Degisken belli bir limiti asti ise belli bir islem
limiti asmadi ise farkli bir islem yapilmasi gerekiyor. Iste bu durumda
if...else karar komutlarini kullanmaniz gerekiyor.
if( durum > limit )
{
ekrana limiti astigimizi yaz;
durum degiskenini sifirla;
kontrol fonksiyonuna git;
}
else
{
durum degiskeninin artir;
kontrol fonksiyonuna git;
}
Yukarida basit bir kontrol tanimlamasi gördük. Burada sartimiz
dogru(true) ise yani durum degiskeni limit degerini asmis ise hemen
altindaki program blogu çalisacaktir. Program blogundan kastimiz { }
parantezleri arasinda kalan bölümlerdir.
Eger durum degiskeni limit degiskeninden küçük ise yani sonuç false
ise else komutundan sonra gelen program blogu çalisacaktir. else program
blogu seçimliktir. Sartimiz olumsuz bir sonuç verince yeni bir islem
yapmamiz gerekiyorsa kullanacagiz. Aksi durumda kullanmamiza gerek yok.
else tanimlamasini yapmadigimiz zaman kontrol sonucu false çiktiginda
hemen if blogundan sonraki komutlar çalisacaktir.
Kisaca tanimlamak gerekirse if(sart) { } selinde bir kullanimda sartin
sonucu true çikarsa bloktaki komutlar çalisacak; aksi halde sartin
sonucu false çikarsa if komutundan sonraki komutlar isleyecek if
komutunun blogu çalismayacaktir.
if(sart) { } else { } seklinde ise sartin sonucu true ise if komutunun
blogu çalisacak ve else bölümü atlanarak program devam edecektir. Aksi
halde sartin sonucu false çikarsa if komutunun blogu atlanacak ve else
komutunun blogu isleyecek ve program akisina devam edecektir.
Basit bir programda bu komutun isleyisini görelim. Programimiz bir isim
istesin. Isim verilirse ekrana tesekkür mesaji versin. Eger isem verilmez
ise ekrana "Adinizi yazmadiniz!!!" seklinde bir mesaj vererek
tekrar isim girilmesini istesin.
<HTML>
<HEAD>
<TITLE>Degisken kullanimi</TITLE>
<SCRIPT language="JavaScript">
<!-- Scripti gizle
function adiniz()
{
var isim;
isim=prompt("Lütfen adinizi yazin...","");
if(kontrolEt(isim))
{
alert("Tesekkürler");
ekranaYaz(isim);
}
else
{
alert("Adinizi yazmadiniz!!!");
adiniz();
}
}
function kontrolEt(deger)
{
if(deger!="" && deger!=null) return true;
else return false;
}
function ekranaYaz(giris)
{
document.write("<FONT size=5 color=pink>
Merhaba "+giris+" hosgeldin.</FONT><BR>");
}
adiniz();
// gizleme sonu -->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Programimizi incelersek program en alt satirda adiniz(); fonksiyonunu
çagirarak basliyor. adiniz(); fonksiyonu prompt methodu ile isim
degiskenine bir deger girilmesini sagliyor.
Sonra if(kontroEt(isim)) seklinde bir kullanim görüyoruz. Bu kullanimla
kontrolEt(deger); fonksiyonunu çagiriyor ve isim degiskenini gönderiyoruz.
Kontrolet(deger); fonksiyonu deger degiskenini inceliyor. Bu degisken
artik isim degiskeni ile ayni degerdedir.
if(deger !="" && deger !=null) seklinde bir kullanimda
deger degiskeninin içeriginin null(bos) veya hiç bir degere esit olup
olmadigini kontrol ediyoruz. Burada kontrol seklimize dikkat edin. Öncelikle
deger != "" seklinde bir kullanim var. Burada deger
degiskeninin bir degeri oldugu taktirde true, deger degiskeni ""
seklinde degersiz oldugu takdirde false degerini üretir.
Sartin ikinci bölümü deger != null seklinde. deger degiskeni
null degerine isit degilse dogru, deger degiskeni null degerine esitse
false degeri olusur.
Daha sonra ise &&(ve) kontrolü var her iki tarafta true ise sonuç
true aksi halde false degeri üretilir. Eger sonuç true ise if blogu çalisir
ve return true; seklinde true degerini geri gönderir. Eger sonuç
false ise else blogu çalisir ve geriye return false; komutu ile
false degerini gönderir.
Burada su kullanima dikkat edin. Blok { } kullanmadik. Çünkü tek bir
komutun oldugu yerde blok kullanmak zorunlu degildir.
Bu kontrolün sonucu geriye döndügünde if(kontrolEt(isim))
kontrolüne geri dönüyoruz. Burada sonuç true olarak geri döndügünde
if blogu çalisacak ve ekrana "Tesekkürler" mesaji basilip
ekranaYaz(isim); seklinde ekranBas(giris); fonksiyonuna isim degiskeni gönderilecektir.
Bu durumda ekrana font kontrolü yapilarak "Merhaba
"+giris+" hosgeldin!" mesaji basilacaktir. Bu sekilde
programimin sonuna gelmis oluruz.
Eger if(kontroEt(isim)) kontrolüne false degeri gelirse else blogu çalisir
ve ekrana "Adinizi yazmadiniz!!!" mesaji gelir. Sonra adiniz();
fonksiyonu tekrar çagrilir.
Bu arada bir fonksiyonun kendi içinden kendisini çagirabildigini de görmüs
olduk.
Simdi yeni bir program ile if...else komutunu incelemeye devem edelim.
Programimiz browserin adini kontrol edecek ve ekrana basacaktir.
<HTML>
<HEAD>
<TITLE>JavaScripte kontrol</TITLE>
<SCRIPT language="JavaScript">
<!-- Scripti gizle
var browserinAdi;
function browseriTani()
{
browserinAdi=navigator.appName;
return;
}
function gonder(giris)
{
if(giris == "Netscape")
{
document.write("Browseriniz Netscape.");
return;
}
if(giris == "Microsoft Internet Explorer")
{
document.write("Browseriniz Internet Explorer");
return;
}
else
{
document.write("Browserinizi taniyamadim.")
return;
}
}
browseriTani();
gonder(browserinAdi);
document.write(browserinAdi);
// gizleme sonu -->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
navigator javaScriptin browsere verdigi
isimdir. appName ise browserin hangi browser oldugunu(adini) bulan
methoddur. navigator.appName bize browserin adini verecektir. Netscape,
Internet Explorer gibi.
Biz bundan yararlanarak bazi islemler yapabiliriz. Mesela iki ayri sayfa
gelistirerek netscape için ayri(onun önemli özelliklerin kullanan bir
sayfa) explorer için ayri bir sayfa hazirlayabilir ve açilista browseri
kontrol ederek gerekli sayfaya yönlendirebiliriz.
Fakat biz sadece browserin adini ekrana mesaj olarak geçmek ile
yetinecegiz.
Progaram çalismaya basladiginda browseriTani(); fonksiyonunu çagiriyor.
Bu fonksiyon global olarak tanimladigimiz browserinAdi degiskenine
browserin adini geçer. browserinAdi=navigator.appName;
Sonra gonder(browserinAdi); seklinde gonder fonksiyonunu çagiriyoruz. Bu
fonksiyon browserin adini kontrol ediyor. Bizi ilgilendiren bölüm bu bölümdür.
if(giris == "Netscape") seklinde browserin adinin
Netscape olup olmadigini kontrol ediyoruz. Eger kontrolün sonucu true ise
ekrana "Browseriniz Netscape." mesaji basilacaktir ve return ile
geri dönüs saglanir.
false sonucu çikarsa bir sonraki if komutu çalisir. Bu kontrol ise
browserin exloper olup olamadigini kontrol ediyor. Kontrol sonucu true ise
ekrana "Browseriniz exloper." mesajini basacaktir. Eger sonuç
false ise else blogu çalisacak ve ekrana "Browseri
taniyamadik." mesajini basacak ve geri dönülecektir.
|