while döngüsü
Javascript January 12th, 2008->
Bu döngü yine bir bloğu defalarca kullanmak amacıyla kullanılır. Kullanımında belli bir şart kontrol edilir. Şart doğruluğunu(true) koruduğu 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 yazalım. Programımız sayfaya girişte bir şifre istesin kullanıcı şifreyi bilirse teşekkür mesajı ile sona ersin. Şifreyi bilemez ise üç kere tekrar şifre sorsun. Üç defa şifreyi bilemez ise yanlış kullanıcı mesajı 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 şifrenizi girin.”,”");
if(girilenSifre==sifre)
{
alert(”Teşekkürler”);
break;
}
else if(toplam>=3)
{
alert(”Yanlış kullanıcı.”);
break;
}
toplam++;
}
}
sifreSor();
// gizleme sonu –>
</script>
</head>
<body>
</body>
</html>
Kullandığımız program aslında bu haliyle bir işimize yaramayacak. Çünkü şifre kontrolünden sonra bir yönlendirme yapmadık. Aslında şifre yanlış girildiğinde farklı bir sayfaya yönlendirmemiz gerekmektedir.
Şifre doğru girildiğinde ise sayfaya giriş sağlanmalıdır. Yinede bu bir deneme scripti olduğu için biz programın mantığını anlamaya çalışalım.
Programın girişinde bir şifre tanımlıyoruz. Bu şifreyi var sifre=123; şeklinde bir değişken olarak tanımladık. Ayrıca şifre döngüsünü belirlemek için toplam değişkenini 1 olarak tanımladık.
sifreSor() fonksiyonuna while( toplam < 4 ) şeklinde başladık. while döngüs toplam adlı değişkenin değeri dörtten küçük olduğu sürece çalışacaktır. Burada dört değerini seçmemiz toplam değişkeninin başlangıç değerinin bir olması ve dörte çıkması için üç adımın geçmesi gerektiğindendir.
Sonra girilenSifre=prompt(”Lütfen şifrenizi girin.”,”"); komutu ile şifre girişi için promptu çağırıyoruz.
Girilen şifrenin doğruluğunu if(girilenSifre==sifre) şeklinde kontrol ediyoruz. Kontrol sonucu true ise if bloğu çalışacak ve ekrana “Teşekkürler” mesajı basılacak ardından break; komutu ile döngü sona erecektir.
break; komutu bir döngüyü istediğimiz yerde sona erdirmek için kullanılan bir metoddur. JavaScript break; komutunu gördüğünde döngüyü sona erdirir.
Eğer kontrolün sonucu false yani girilenSifre sifre değişkenine eşit değil ise else if bloğu devreye girecektir. Burada if( toplam >= 3) şeklinde bir kontrol yapıyoruz. toplam değişkeni üçe eşit veya üçten büyük ise ekrana “Yanlış kullanıcı” mesajını basacak ve döngüyü break; komutu ile sona erdirecektir.
Bu kontrolün sonucu toplam değişkeni üçten küçük çıkacak olursa yani false; else bloğından sonra gelen komutlar işlecek ve toplam değişkeni bir birim artırılacaktır; toplam++ şeklinde. Sonra yine while döngüsü baştan başlayacaktır.
Aslında az önceki programı daha kısa bir şekilde yazabiliriz. Fakat bunun kullanımda büyük mahsurları var. Yanlış şifre girildiği sürece döngüden dolayısıyla sayfada çıkılamayacaktır.
while( 123 != prompt("Şifrenizi girin","")
alert("Teşekkürler")
while döngüsünün bir özelliği önce şartın kontrol edilmesi ve eğer şart oluşmuş ise döngüye girmeden kendisinden sonra gelen komutlara geçmesidir. Bu nedenle eğer mutlaka döngünün en az bir defa işlemesini istediğiniz durumarda do…while döngüsünü kullanacağız.


























Son Yorumlamalar