JAVA

                                                                    DONGULER

                                                        Javascripte döngü kullanimi

        Öncelikle döngü nedir? sorusuna cevap arayalim. Döngü adindan da anlasilabilecegi gibi dönmek anlamina gelir. Programin belli bir bölümünü defalarca çalistirmak javaScript için döngüdür.
Program yazarken bazi durumlarda belli bir islemi birçok defa kullanmamiz gerekmektdir. Bu durumda döngü komutlarindan yararlaniriz. Bunlar for, while, do-while komutlaridir.

 

for döngüsü
    Bu döngü belli bir degiskenin egerini kontrol eder ve sonuca göre döngü sayisini ayarlar. for(degisken=degiskenin_ilk_degeri; sart; degisgenin_degerini_degistir) { for blogu } seklinde kullanilir.
Degiskenimizin adi toplam olsun, toplamin 70 den küçük oldugu sürece for döngüsünün çalismasini isteyelim. Ayrica toplam degiskenini her kullanimda 1 birim artiralim. Toplam degiskeninin ilk degerini 50 olarak belirleyelim ve toplam degiskeninin tüm aldigi degerleri ekrana basalim.

for(var toplam = 50 ; toplam < 70 ; toplam++ )

{

document.write(toplam);

}

document.write("Döngü bitti.");

     Dikkat ettiyseniz toplam degiskeninin ilk degeri olan 50 den döngümüz basladi. Sonra toplam degiskeninin degeri birerbirer artirildi. Sonuçlar ekrana yazildi. Her deger artirilisinda toplam degiskeninin degerinin 70 den küçük olup olmadigi kontrol edildi. Toplam degiskeninin degeri 70 se esit olunca yani sart bozulunca döngüde 69 da kaldi.
Sartimiz toplam degiskeninin 70 den küçük olamasi idi. Bu sart en son 69 degerinde gerçeklesir. Toplam degiskeni 70 olunca döngü duracaktir.

Tamam da ne isimize yarayacak bu for methodu? Aslinda bir programlama dili, html her hangi bir yöntemin ne ise yarayacagi ve nerelerde kullanacagi kisinin bilgisine ve hayal gücüne kalmistir. Insanlar genelde bir konuyu ögrenirler ve genel olarak herkezin yaptigi seyleri yaparlar.
Hayal gücü yüksek olan bir tasarimci ise yeni yeni yöntemler ve kullanim alanlari gelistirebilir. Biz burada for döngüsünü genel bir konu ile deneyecegiz.
Yazacagimiz program birinci lig puan durumunu ekrana basacak. Aslinda bunu bir tablo veya bir liste halinda html taglari ile yapabiliriz. javaScripti kullanma nedenimiz gerekli bilgileri bir dizi altinda toplamak ve her hafta degisik bir tablo yapacagimiza sadece dizinin içindeki elemanlari yeni puan durumuna göre degistirmek olacaktir.
Bu bize bir kolaylik ve zaman tasarrufu saglar.

<html>

<head>

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

<script language="JavaScript">

<!-- gizle

var takimlar=new Array("Fenerbahçe", "Galatasaray", "Trabzonspor", "Gaziantep",

"Besiktas", "Altay", "Denizlispor", "Gençlerbirligi", "Kocaelispor",

"Istanbulspor", "Antalyaspor", "Samsunspor", "Göztepe", "Erzurumspor",

"Adanaspor", "Ankaragücü", "Vanspor", "Bursaspor");

var puanlar=new Array(10, 9, 9, 9, 7, 7, 7, 7, 6, 6, 6, 6, 5, 4, 1, 1, 1, 0);

var takimSayisi=takimlar.length;

document.write("<table border=1 bgcolor=F0F0FA>");

document.write("<tr><td>Sira</td><td>Takim</td><td>Puan</td></tr>");

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

{

document.write("<tr><td>"+(a+1)+"</td><td>"+

takimlar[a]+"</td><td align=right>"+puanlar[a]+"</td></tr>");

}

document.write("</table>");

// gizleme sonu -->

</script>

</head>

<body>

</body>

</html>

    Aslinda programimiz göründügü kadar karisik degil. Pogrami denediginiz sayfanin kodlarini incelerseniz programin dokuz satirdan olustugunu ve bu satirlarin üçünün degisken tanimlamasi oldugunu görürsünüz. Fakat bu program ile yaklasik altmis elemanli bir tablo olusturduk ve tablonun içerisini gerekli bilgiler ile doldurduk.
Ayrica bu program bize her hafta yeni bir sayfa hazirlamak yerine sadece ilk iki satirdaki takimlar ve puanlar adli iki dizi degiskenin yeni degerlerini girerek sayfayi güncelleme kolayligi ve hizi saglayacaktir.
Programi inceler isek ilk iki satirda takimlar ve puanlar dizilerini olusturduk ve içerigini girdik. Üçüncü satirda ise takimlar dizisinin uzunlugunu bularak takimSayisi degiskenine aktardik. takimSayisi=takimlar.length
Sonra bir tablo olusturmaya basladik; document.write("<table border=1 bgcolor=F0F0FA>");
Tablonun ilk satirini olusturduk; document.write("<tr><td>Sira</td><td>Takim</td><td>Puan</td></tr>");
Ve tablonun içerigini doldurmaya basliyoruz. Burada konumuz olan for döngüsünü kullandik. for(a = 0 ; a < takimSayisi ; a++)
for döngüsünü a degerini sifir yaparak a=0 sifirdan baslattik. Kontrol sartimiz olarak döngünün takimSayisi degiskeni kadar olamsini sagladik; a < takimSayisi; Sonra a degerinin birer birer artmasini sagladik; a++;
Bu sekilde döngümüz sifirdan baslayiptip onyedide bitirtmis oluyoruz. Gerçi takim sayisi degistiginde döngü sayisida buna bagli olarak degisecektir.
Bir satir ilede tablomuzun içerigini giriyoruz. Burasi biraz karisik gibi gelsede aslinda tablo hücrelerini olusturan <tr><td> kisimlarini atarsak geriye sadece
document.write((a+1)+takimlar[a]+puanlar[a]); seklinde bir satir kaliyor. Bu bölümü inceleyelim. Önce (a+1) seklinde bir yazilimla siralama numarasini giriyoruz. Burada a yerine (a+1) kullanmamizin sebebi takim siralamasinin birden baslamasi, fakat döngümüzün ise sifirdan baslamasidir. Böylece siralamanin birden baslamasini sagliyoruz.
takimlar[a] seklinde takimin ismini diziden okuyup yazdiriyoruz. Yine puanlar[a] seklinde bir yazilimla ayni takimin puan durumunu ekrana yaziyoruz.
Döngümüz boyunca bu islemler tekrarlaniyor. Döngümüz bitince tablomuzu kapatiyoruz. document.write(</table>); böylece programimiz sona eriyor.
Programa ayni yöntem ile averaj durumu, oynadigi maç sayisi, attigi gol sayisi, yedigi gol sayisi gibi bilgileride kolayca ekleyebiliriz.

 

while döngüsü
      Bu döngü yine bir blogu defalarca kullanmak amaciyla kullanilir. Kullaniminda belli bir sart kontrol edilir. Sart dogrulugunu(true) korudugu müddetce döngü devam eder.

var toplam=1;

while( toplam < 100 )

{

document.write(toplam+"<br>");

toplam=toplam + 10;

}

document.write("Döngü sona erdi<br>");

   Yine bu konuyla ilgili bir program yazalim. Programimiz sayfaya giriste bir sifre istesin kullanici sifreyi bilirse tesekkür mesaji ile sona ersin. Sifreyi bilemez ise üç kere tekrar sifre sorsun. Üç defa sifreyi bilemez ise yanlis kullanici mesaji ile sona ersin.

<html>

<head>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html;

charset=iso-8859-9">

<script language="JavaScript">

<!-- gizle

var sifre=123;

var toplam=1;

function sifreSor()

{

while(toplam < 4)

{

girilenSifre=prompt("Lütfen sifrenizi girin.","");

if(girilenSifre==sifre)

{

alert("Tesekkürler");

break;

}

else if(toplam>=3)

{

alert("Yanlis kullanici.");

break;

}

toplam++;

}

}

sifreSor();

// gizleme sonu -->

</script>

</head>

<body>

</body>

</html>

     Kullandigimiz program aslinda bu haliyle bir isimize yaramayacak. Çünkü sifre kontrolünden sonra bir yönlendirme yapmadik. Aslinda sifre yanlis girildiginde farkli bir sayfaya yönlendirmemiz gerekmektedir.
Sifre dogru girildiginde ise sayfaya giris saglanmalidir. Yinede bu bir deneme scripti oldugu için biz programin mantigini anlamaya çalisalim.
Programin girisinde bir sifre tanimliyoruz. Bu sifreyi var sifre=123; seklinde bir degisken olarak tanimladik. Ayrica sifre döngüsünü belirlemek için toplam degiskenini 1 olarak tanimladik.
sifreSor() fonksiyonuna while( toplam < 4 ) seklinde basladik. while döngüs toplam adli degiskenin degeri dörtten küçük oldugu sürece çalisacaktir. Burada dört degerini seçmemiz toplam degiskeninin baslangiç degerinin bir olmasi ve dörte çikmasi için üç adimin geçmesi gerektigindendir.
Sonra girilenSifre=prompt("Lütfen sifrenizi girin.",""); komutu ile sifre girisi için promptu çagiriyoruz.
Girilen sifrenin dogrulugunu if(girilenSifre==sifre) seklinde kontrol ediyoruz. Kontrol sonucu true ise if blogu çalisacak ve ekrana "Tesekkürler" mesaji basilacak ardindan break; komutu ile döngü sona erecektir.
break; komutu bir döngüyü istedigimiz yerde sona erdirmek için kullanilan bir metoddur. JavaScript break; komutunu gördügünde döngüyü sona erdirir.
Eger kontrolün sonucu false yani girilenSifre sifre degiskenine esit degil ise else if blogu devreye girecektir. Burada if( toplam >= 3) seklinde bir kontrol yapiyoruz. toplam degiskeni üçe esit veya üçten büyük ise ekrana "Yanlis kullanici" mesajini basacak ve döngüyü break; komutu ile sona erdirecektir.
Bu kontrolün sonucu toplam degiskeni üçten küçük çikacak olursa yani false; else blogindan sonra gelen komutlar islecek ve toplam degiskeni bir birim artirilacaktir; toplam++ seklinde. Sonra yine while döngüsü bastan baslayacaktir.

   Aslinda az önceki programi daha kisa bir sekilde yazabiliriz. Fakat bunun kullanimda büyük mahsurlari var. Yanlis sifre girildigi sürece döngüden dolayisiyla sayfada çikilamayacaktir.

while( 123 != prompt("Sifrenizi girin","")

alert("Tesekkürler")

     while döngüsünün bir özelligi önce sartin kontrol edilmesi ve eger sart olusmus ise döngüye girmeden kendisinden sonra gelen komutlara geçmesidir. Bu nedenle eger mutlaka döngünün en az bir defa islemesini istediginiz durumarda do...while döngüsünü kullanacagiz.

do...while Döngüsü

    Bu döngü önce döngü blogunu çalistirir ve sonra kontrolü yapar. Bu nedenle önce döngüyü çalistirip sonra kontrol yapmamiz gereken durumlarda bu metodu kullanacagiz.
Basit bir örnek ile bu konuyu geçelim. Programimiz toplam degiskeni genel degiskeninin degerini geçtiginde toplam degiskeninin degerini ve döngü sayisini ekrana basacak ve duracaktir. Siz toplam degiskeninin degerini degistirerek do...while döngüsünü iyice anlamaya çalisin.

<script language="JavaScript">

<!-- gizle

var genel=1234;

var toplam=1341;

var donguSayisi=0;

do

{

toplam+=toplam;

donguSayisi++;

}

while(toplam < genel)

document.write("döngü sayisi = "+donguSayisi+"<br>"+

"toplam = " +toplam+"<br>");

// gizleme sonu -->

</script>

 

<=Geri İleri=>