Döngüler (Do..Loop)
Döngüler
Döngüler daha bitmedi demistim.Simdiki konumuz Do..Loop döngüsü.
Do Ingilizce'de -yapmak anlamina gelir. Bizde burada Do yani su isi yap! diyecegiz.
Ama bu isi yaptirmanin iki yolu olabilir, bir dizi komutu, bir kosul dogru iken veya dogru oluncaya kadar kadar yaptirabiliriz.
Bir kosul dogru ikenbazi islerin biteviye (yani bitmeden) yapilmasini istiyorsak Do ile birlikte While yöntemini kullaniriz. Genel olarak yazim kurali söyledir:
Do While kosul
kosul dogru iken yapilacak isler
loop |
Do While ' in karsisina kosulu bir alt satira da kosul dogru ise yani kosul gerçeklesebilecek durumda ise yapilacak isleri yaziyoruz. Loop ile yapilacak isleri tekrarliyoruz.
Bir örnek yapalim ve Do While olayina daha yakindan bakalim. Ama önce bu örnegimizin içerigi hakkinda biraz bilgi vermek istiyorum. Örnegimizde bir isim olsun ve onu sayfaya 3 kez yazdirana kadar döngümüz dönmeye devam etsin. Bu sayfayi dongu2.asp adi ile kaydedin:
<html>
<head>
<title> ASP' de Döngüler </title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9" >
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</head>
<body>
<h2>
<%
Dim Donen, Seren, Esra, Gelen
Randomize
Seren = 0
Esra = 0
Gelen = 0
Do While Seren < 3
Gelen = Gelen +1
Donen = Int(Rnd *2) +1
If Donen = 1 Then
%>
<p> Esra! </p>
<%
Esra = Esra +1
Else
%>
<p> Seren </p>
<%
Seren = Seren +1
End If
Loop
%>
Sayfaya 3 kere Seren yazdirmamiz için isimleri <%= Gelen %> kez döndürmemiz gerekti!
</h2>
</body>
</html> |
|
Bu sefer uzunca bir kodlama yaptik. Kodlari incelemeye geçmeden önce bu sayfayi kaydedin ve çalistirin. Bir kaç kez sayfanin yenile dügmesine basin. Her seferinde isimler sayfaya farkli sayilarda yazilacaktir ve isimlerin altinda 3 kez Seren yazilabilmesi için kaç kez dönülmesi gerektigi yazacaktir. Simdi kodlalarimiza daha yakinda bakalim. Çünkü bizi en çok ilgilendiren konu onlar.
Önce degiskenlerimizi tanimliyoruz. 4 tane degiskenimiz var. Burada degisken adlari önemli degil. Degiskenlere istediginiz ismi verebilirsiniz (cicek, bocek vs.). Ama türkçe karakter kullanmamaya dikkat edin! Degiskenler tanimlandi.. O da ne? Randomize diye bir sey yazmisiz. Nedir bu Randomize?
|
Randomize = Tesadüfi Sayi nedir?
Randomize Tesadüfi Sayi anlamina gelir. Yani sayfamizin yenile dügmesine bastigimizda isimlerin hep degisik sayida dönmesinin sebebi buydu. Randomize tek basina ise yaramaz. Randomize tesadüfi sayiyi üretir. Ama onu bize veren Rnd komutudur. Rdn komutunun bize verdigi sayilar tamsayi degildir! Bunlari tam sayi yapmak için Int komutunu kullaniriz. |
|
Randomize ' nin ne oldugunu ögrendikten sonra kodlari incelemeye devam edelim.
Randomize satirinin altinda Do While döngümüzü görüyoruz. Do While Seren < 3 demisiz. Yani Seren degiskeni sayfada 3' ten küçükse islem gerçeklesmis olacak. 3 ' ten büyük olmayacak. Islemcileri hatirlayin!
Su satira bakalim:
Donen degiskenimizin karsina Int(Rnd ... yazmisiz.Yani Randomize ile gelen sayiyi Rnd ile göster bunu Int ile tamsayiya çevir demis oluyoruz.
Bir If deyimimiz var. Bu olaylarin akisini düzene sokmak için gerekli.
Sayfaya Esra yazdirdiktan sonra Esra = Esra +1 komutu ile bir arttiriyoruz. Daha sonra da Seren isimli degiskenimizi 1 arttiriyoruz. End If ile If deyimini sonlandirirken, Loop ile sayfaya 3 kez Seren yazilana dek döngümüzü döndürmeye devam ediyoruz. Kaç kez döndügünü bize söylemesi için Gelen isimli degiskeni sayfaya yazdiriyoruz: <%= Gelen %> .
Burada Do While..Loop döngüsünü ögrendik. Dögüler ileride çok isimize yaracaklar. Gerçek hayatta bize arkadas olmayacaklar, ama web uygulamalarimizda önemli bir yer tutacaklar. Bizden söylemesi. |