Javascript Şartlı döngü: while

Javascript kodu yazarken öyle durumlar olabilir ki, programın sayaç değişkeninin her değeri için yapmasını istediğiniz işi yapmasındansa, sadece belirli bir şart karşılanıyorsa yapmasını tercih edebilirsiniz. Bunu “while” (…iken) ifadesiyle sağlarız. Bu yöntemle Javascript?e “filanca işi yap, ama falanca şart varsa (veya yoksa)” demiş oluruz.

 

“while” ile kuracağınız döngünün şartı rolünü oynayacak değişkenin daha önceden oluşturulması, içeriğinin başka bir yöntemle belirlenmesi ve değiştirilmesi gerekir; “for” döngüsünün aksine “while” şartlı döngüsü bunu sizin için otomatik olarak yapmaz. Ayrıca koyduğunu şarta bağlı olarak, “while” döngüsü sırasında yapılmasını istediğiniz iş hiç yapılmayabilir.

Diyelim ki, bir elektronik ticaret siteniz var; ve müşteri adayı ziyaretçileriniz, bazı malları Web sayfanızda toptan ısmarlayabilirler. Böyle bir siparişi alabilmek için, o maldan stokunuzda yeterli miktarda bulunması gerekir. Aşağıdaki kodu dongu2.htm adıyla kaydederseniz, ısmarlanan bir miktar üzerinden kaç sipariş karşılayabileceğini sayfanız otomatik olarak hesaplayacaktır.

<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <TITLE>Javascript'te döngü</TITLE> <SCRIPT LANGUAGE="Javascript1.2"> <!-- Javascript kodunu eski sürüm Browserlardan saklayalim // envanter kontrolü icin degisken var stok = 700 // --> </SCRIPT> </HEAD> <BODY> <PRE> <SCRIPT LANGUAGE="Javascript1.2"> function hesapla(miktar) 	{ 	var endeks, talepMiktar, satis  	endeks=miktar.selectedIndex 	talepMiktar=miktar.options[endeks].text 	satis = 0 	while (talepMiktar < stok) 		{ 	 	stok -= talepMiktar 		satis++ 		} 	document.miktarForm.sonuc.value=talepMiktar + " ton itibariyle "+ satis 	                                + " adet sipariş için stokumuz var!" 	} </SCRIPT> </HEAD> <BODY> <BR> <FORM NAME="miktarForm"> <P>Alacağınız miktarı lütfen seçiniz:</P> <SELECT NAME="miktar" onChange="hesapla(this)"> <OPTION SELECTED> Miktarı seçiniz <OPTION>100 <OPTION>200 <OPTION>300 <OPTION>400 </SELECT> <P></P> <INPUT NAME="sonuc" VALUE="" SIZE=55> </FORM> </BODY> </HTML> 

Bu kodun da bir çok unsuru üzerinde durmayalım; bizi döngü açısından ilgilendiren bölümlerini ele alalım. Gördüğünüz gibi üç değişken tanımlıyoruz; “stok” değişkeninin değerini biz veriyoruz; miktarTalep değişkeni ise sayfamızdaki Form nesnesinin “miktar” adlı SELECT nesnesinden alınıyor. Bu arada, işlemi yapan fonksiyonun içinde “satıs” adlı bir değişken oluşturuyoruz ve değerinin, döngünün içinde birer birer artmasını sağlıyoruz. Bu kodun mantığı, müşterinin sipariş vereceği miktarda, stokumuzdan kaç adet toptan satış yapılacağını bilmek olduğuna göre, Javascript, döngünün içinde çalışırken şöyle düşünecektir:

“Benden, stok değişkeninin değerinden talepMiktar değişkeninin değeri kadar çıkartmam; sonra da satıs adlı değişkenin değerini bir adet arttırmam isteniyor. Ama bunu ancak ve sadece talepMiktar değişkeninin değeri stok değişkeninin değerinden az iken yapabilirim!”

Nitekim Javascript, talepMiktar değişkeninin değeri stok değişkeninin değerine eşit veya fazla hale geldiği anda, döngüye son verecek ve “while” ifadesinin dışına çıkacaktır. Döngüden çıktığı anda Javascript?in yapacağı iş ise ekrandaki Form?un sonuc adlı kutusuna kendisine bildirilen metni yazmaktan ibaret!

Bana Ders Anlat © 2008-2022