JAVA

                                                                  FONKSIYONLAR

Javascripte fonksiyon kullanimi
    Belli bir ad ile bir gurup islemin yaptirildigi program blogina verilen ad fonksiyondur. Önemli bir yeri olan fonksiyonlari kavramak zorundayiz.
Fonksiyonlar bir deger alabilir ve bu degeri isleyebilirler. Hatta bir sonuç geriye verebilirler.
Fonksiyonlari tanimlamamizin en büyük nedeni ayni isi bir çok defa yapmak zorunda olmamizdir. Ayni satirlari tekrar tekrar yazmak yerine bir kere yazip ismiyle çaglirmak kolay olur. Kullanimi

function fonksiyonAdi(arguman_1,arguman_2,...arguman_n) {

fonksiyon blogu

}

seklindedir. Fonksiyonlar <SCRIPT>...<SCRIPT> etiketi arasina yazilirlar. Bir fonksiyon istenildigi kadar çagrilabilir(kullanilabillir). Fonksiyon kendini çagiran komuttan bir deger alabilir. Sonuç olarak bir deger gönderebilir.

<html>

<head>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
charset=iso-8859-9">

<script language="JavaScript">

<!-- gizle

var adiniz;

function degerAl()

{

adiniz=prompt("Lütfen adinizi giriniz!","Arkadas");

kontrolEt();

}

function kontrolEt()

{

if(adiniz=="Arkadas") degerAl();

alert("Tesekkürler");

ekranaBas();

}

function ekranaBas()

{

document.write("<font size=5 color=red>Merhaba "+adiniz+" hosgeldin.</font>");

}

degerAl();

// -->

</script>

<title> Karsilastirma islemleri</title>

</head>

<body>

</body>

</html>

Yazdigimiz programi inceleyelim. Ilk önce adiniz degiskenini tanimladik. Sonra degerAl() fonksiyonunu tanimladik. Burada promt metodu ile bir soru sorduk ve cevabini istedik. Promt metodu javaScriptin disaridan deger almak için kullandigi hazir bir fonksiyondur. Kullanimi degiskenAdi=prompt("Soru","Default deger"); seklindedir. Sonuc degiskenAdi na aktarilir. Sizde deneyin.
Sonra degerAl() fonksiyonu içinden kontrolEt() fonksiyonunu çagirdik. KontrolEt() fonksiyonu adiniz degiskeninin Arkadas stringine esit olup olmadigini kontrol ediyor. Eger bu kontrol dogru ise tekrar degerAl() fonksiyonunu çagiriyoruz.
Aksi halde alert("Tesekkürler"); seklinde bir mesaj veriyoruz. Burada alert(); methoduna bir deginelim. Alert methodu bir kutu mesaj olusturur. alert("mesaj"); seklinde kullanilir. Mesaj olarak verdigimiz degeri bir kutu içinde ekrana basar.
Bu tesekkür mesajindan sonra ekranaBas(); fonksiyonunu çagirdik. Bu fonksiyon ekrana font tanimlamasindan sonra Merhaba stringini ve adiniz degiskenini sonrada hosgeldin stringini birlestirerek basacaktir.
Programimiz bitmis oluyor. Aslinda bir noktaya dikkat çekeyim bir fonksiyonun görevi bittiginde çagrildigi noktaya geri döner. Fonksiyon çagrilmadan çalismaz.
Bu nedenle bu program çalisirken ilk önce en alt satirda olan degerAl(); seklindeki çagirma ile degerAl() fonksiyonu çagrilir ve program buradan baslar. Ekrana istenilen deger basildiktan sonra yine ayni yere döner ve bir sonraki satirdan devam eder.
Biz bu programda baska bir satir tanimlamadigimiz için program otomatikman sona erecektir.
Su konuya dikkat çekeyim. Biz kotrolEt() fonksiyonunda girilen degeri kontrol ettik. Aslinda sadece defaut deger yani Arkadas degerimi geri dönmüs yoksa baska bir deger girilmis mi? sorusunu inceledik. Sonuca bu noktadan gittik.
Eger denemediyseniz prompt mesaji çiktiginda tamam yerine iptal butonuna bir basin ve sonucu görün. Burada ki eksiklik tamamen programci kontrolündedir. Mutlaka programinizi her kosula cevap verecek sekilde tanimlamak zorundasiniz. Buna dikkat edin.

Burada write metoduna bir bakalim. write ekrana karekter basmak için kullanilan bir metoddur. Bunu öeneklerimizde gördük. Kullanimi document.write(ekranaBasilacakBilgi); seklindedir. Ekrana basilacak bilgi ;

Bir string olabilir;
document.write("Bu gün hava çok güzel");

Bir sayi olabilir;
var a=12345;
documetn.write(a);

Bir boolean degisken olabilir;
var durum=true;
document.write(durum);

Bir html tagi olabilir;
document.write("<hr><font size=5>Nasil buldunuz?</font><hr>");

<script language="JavaScript">

<!-- gizle

a=123;

b="ali"

c="<hr color=pink>"

d=true

e="<br>"

document.write(a+e);

document.write(b+e);

document.write(c+e);

document.write(d);

document.write("<hr><font size=5 color=gray>
Nasil buldunuz?</font><hr>");

// gizleme sonu -->

</script>

Fonksiyonlar kendisini çagiran komuttan bir arguman alabilir ve kendini çagiran komuta deger geri döndürebilir.
Fonksiyona bir deger gönderilmesi if(kontrolEt(miktari)) seklinde olabilir. Böyle bir sekilde kontrolEt() fonksiyonunu çagirdigimizda kontrolEt() fonksiyonuna gönderilen bu degeri almasi için bir arguman girmemiz gerekir. function kontrolEt(giris) { } gibi. Fonksiyonun geri deger göndermesi ise return donecekDeger; seklinde fonksiyona eklenir. Bir örnekte bu konuyu görelim.

<html>

<head>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-9">

<script language="JavaScript">

<!-- gizle

var e_mail;

var uzunluk;

var durum;

e_mail=prompt("Lütfen e-mail adresinizi girin.","");

uzunluk=e_mail.length;

for(a=0 ; a < uzunluk; a++)

{

b=e_mail.charAt(a);

if(b=="@")

{

durum=true;

yaz(durum);

break;

}

else if(a==uzunluk-1)

{

durum=false;

yaz(durum);

break;

}

}

function yaz(giris)

{

if(giris==true)document.write("E-mail adresiniz
<font size=4 color=red>"+e_mail+"</font><br>");

else document.write("Lütfen e-mail
adresinizi dogru girin!!!<br>");

}

// gizleme sonu -->

</script>

<title>Fonksiyona deger göndermek</title>

</head>

<body>

</body>

</html>

Programimiz bizden e-mail adresimizi istiyor. Eger yanlis e-mail verildiyse "E-Mail adresinizi dogru girin!!!" mesajini ekrana basiyor. Aksi halde ekrana yazdiginiz e-mail adresini basiyor.
Program sadece e-mail adresinde bulunmasi gereken @ isaretini kontrol ederek sonuca ulasiyor. Öncelikle e_mail adli degiskene prompt tan aldigimiz degeri aktardik. Ardindan uzunluk adli degiskene uzunluk=e_mail.length; seklinde e_mail degiskeninin uzunlugunu(karekter sayisini) aktardik.
Biz kontrol yaparken @ karekterini aradigimiz için e_mail degiskeni içerisinde @ karekterini aramak zorundayiz. Bunu için öncelikle for() döngüsünü kurarak ise basladik. Bu döngü sayesinde e_mail degiskeninin uzunlugu miktarinca islem yapabildik.
Burada charAt(x); methodunu görelim. Bu method bir stringin x inci karekterini verir. Mesela ad="selami"; adli stringe bu methodu uygularsak deger=ad.charAt(3); seklinde bir kullanim bize "l" degerini verecektir. Çünkü "selami" string katarinda üçüncü karekter "l" dir. Mesela deger=ad.charAt(5); bize "m" degerini verir.
b=e_mail.charAt(a); islemiyle b degikenine e_mail degiskeninin a(döngünün o anki degeri) degerinde ki karekteri verecektir. Biz döngü boyunca e_mail degiskeninin tüm karekterlerine bu sekilde ulasacagiz.
if(b=="@") seklinde bir sorgulama bize b degerinin(e_mail stringinin a'ninci karekteri) "@" karekterine esit olup olmadigini veriyor. Eger sonuç dogru ise yani bir birlerine esitseler durum=true seklinde bir kullanimla durum degikenine true degeri aktariliyor. Sonra bu deger yaz(durum) seklinde yaz(giris); fonksiyonuna aktariliyor. break komutu ile döngü sona erdiriliyor.
Eger b=="@" esitligi saglanamazsa else bölümüne geliyoruz. Burada a degiskeninin uzunluk degiskenine esit olup olmadigi kontrol ediliyor. Böylece e_mail stringinin sonuna gelip gelmedigimiz kontrol ediliyor. Stringin sonuna gelmis isek durum degiskenine false degeri aktariliyor. Sonuç yaz(giris); fonksiyonuna gönderiliyor. yaz(durum); kullanimiyla.
break komutu ise islemin bittigini döngüden ayrilacagimizi bilgisayara bildiriyor. if...else ve for() methodlarini ileride ayrintili olarak görecegiz.
yaz(giris); fonksiyonuna gelelim. Bu fonksyon giris degiskenine gönderilen durum degiskenini aktarir. Sonra if... else kontrolünde bu deger true ise ekrana e_mail degiskenini basar. Aksi halde else blogu devreye girer ve ekrana "Lütfen E-Mailinizi dogru girin!!!" mesajini basar.

 

<=Geri İleri=>