|
5. Döngü Yapısı
5.1 for Döngü yapısı
Javascript'te diğer programlama dillerinde olduğu gibi istediğiniz işlemi
2 veya daha fazla kez yaptırmak için belli program kodları mevcuttur.
Bu diğer dillere çok benzer olan for döngü komutudur. Bu komutun yaptığı
işlem , istenilen fonksiyon veya fonksiyon parçalarını istenilen değerde
tekrar etmektir. Şimdi ayrıntılara geçelim.
for ( değişken_başlangıç_değerler1 , değişken_başlangıç_değeri2
; döngü sayısı ; değişecek_değişken_adı_ve_türü )
{ yapılması istenen işlemler } |
Burada parantezler içerisinde verilen değişken_başlangıç_değerler kısmı
ve değişecek_değişken_adı_ve_türü kısmını yazmanız gerekmez. Döngü içerisinde
kullanılan değişken daha sonrada istenilen şekilde arttırılabilir veya
azaltılabilir. Yapı gözünüzü korkutmasın hemen bir örnekle daha iyi anlayalım.
for (a=0 , b=0 ; c<=3 ; c++)
{ yapılması istenen işlemler }
for ifadesi için kısa yazılım :
var a,b=0;
for (;c<=3;c++)
{ yapılması istenen işlemler } |
Şimdi bunu tam bir örnekle dahada pekiştirelim.
Varsalım ki elimizde bir çarpım tablosu yapmak istiyoruz. Buna göre 5
sayısı için 1'den 10'a kadar sayıları bir tablo içerisinde vereceğiz.
Şimdi bu durumda for döngüsüz 10 adet tablo yazmamız gerekecekti fakat
biz for döngüsü ile işlemi 1 satıra indirgeyeceğiz.
<html>
<head>
<title>for döngüsü</title>
</head>
<body>
<script language="JavaScript">
<!-- //eski sürüm tarayıcılardan kodumuzu saklayalım
var cevap=0;
for ( sayi=0 ; sayi>=10 ;)
{
sayi--;
var cevap = 5 * sayi ;
document.write( "5 * " , sayi , " =" , cevap ,"<br>")
}
//saklamayı bitir-->
</script>
</body>
</html>
|
Burada gördüğünüz gibi işlem tek bir satıra ingirdendi.
Şimdide for döngüsünün yapmak istediğimiz işlemlerde yetersiz kaldığı
durumlarda kullanabileceğimiz yapıları görelim. 5.2
Şartlı döngü yapısı while
Javascript kodu yazarken -programda bir önceki örnekte olduğu gibi- sayaç
değişkeninin her değeri için istediğiniz işlemi yapmasını istemeyebilirsiniz.
Bunun için while komutunu kullanırsınız ki bu Javascript'e "İstediğim
işi şu şart sağlanıyorsa yap !" demiş olursunuz.
While döngüsünde for döngüsünden farklı olarak döngü içerisindeki değişkenlerin
tanımlanması gerekir. Şimdi yazım kurallarına bir göz atalım.
while ( döngü şartı ) { şart doğruysa yapılacak işlemler}
şart doğru değilse yapılacak işlemler |
5.3 Do .. while yapısı
Do ... while yapısı genel olarak bir döngünün yapısını eğer şart doğruysa
tekrar et manasındadır. Yani do ile başlangıçta hiçbir koşul olmadan işlem
yapılır. Daha sonra while şartı doğru ise tekrar do yapısında geri dönülür.
Bunu bir örnek ile açıklamak gerekirse ;
Örneğin bir ticari siteniz var. İnsanlar sizden gelip istedikleri ürünleri
satın alıyorlar. Bir ürün için siparişlerini verdiler ve bizde bunun karşılığı
olarak ücret + kargo + kdv miktarını hesapladık ve müşterimize dedik ki
istediğiniz ürün şu fiyata şu gün elinizde olur. Bu hesaplamaların hepsini
do yapısı ile yap dedik. Ve sonra sorduk daha başka ürünlerde almak istiyor
musunuz ? İşte bu da while yapısı ile sorulur. Şayet cevap evet ise do
yapısı tekrarlanır değilse do döngü yapısında çıkılır.
Bu tür bir örnek yapalım ;
Bizim kitap , cd ve kaset sattığımız varsayalım. Bizden de 2 kitap ve
3 cd aldığını varsayarsak ;
var kitap=2000000; var cd=3000000; var kaset=1500000;
do {
var kitapistek =prompt ("Kaç tane kitap almak istiyorsunuz ?"
, "lütfen rakam giriniz");
var cdistek= prompt ("Kaç tane cd almak istiyorsunuz ?"
, "lütfen rakam giriniz");
var kasetistek= prompt ("Kaç tane kaset almak istiyorsunuz ?"
, "lütfen rakam giriniz");
var kitaptutar=kitapistek*2000000;
var cdtutar=cdistek*3000000;
var kasettutar=kasetistek*1500000;
var toplamtutar = kitaptutar+cdtutar+kasettutar;
document.write (kitapistek ," tane kitap ", cdistek ,"
tane cd " , kasetistek , " tane kaset siparişiniz alınmıştır
", "<br>");
document.write ("<br>" , "Aldığınız ürünlerin
toplam tutarı = " ,toplamtutar);
var istek =prompt("Başka ürünlerde satın almak istiyor musunuz
?", "e veya h giriniz"); }
while (istek !="h")
document.write ("<br>" ,"Bizden alışveriş yaptığınız
için teşekkürler") |
5.4 Break ve Continue İfadeleri
While komutu ile şartı belirledikten sonra yapılan işlemin kesilmesi
veya devam etmesi otomatik hale gelmektedir. For döngüsü içerisinde de
bu tür bir olayı break ve contine ifadeleri ile gerçekleştiririz.
Javascript break ifadesini gördüğü anda döngü işlemini keser ve bir sonraki
komut satırını işleme koyar. Continue ifadesinde ise döngü break ifadesindeki
gibi kesilir fakat işleme konulan satır bir sonraki satır değildir. Continue'de
döngü başına dönülür.
Bir örnek verelim ;
for ()
{işlem1; işlem2; break; } |
Burada işlem2 ile verilen kısımda örnek olarak bir sorgu yapılabilir.
Sorgu doğru ise break ifadesine gelinir ve burada döngü kesilir.
for ()
{ işlem1; işlem2; continue;} |
Burada yine işlem2 ile sorgu yapılırsa contine ifadesi ile döngünün
devamı sürdürülür.
Önemli : Break ve Continue ifadeleri her komutu kesmek veya devam ettirmek
için kullanılamaz. Mesela bir if (Eğer) ifadesi şart doğru değilse break
ile kes denilemez. Sadece döngü içerisinde döngünün kesilmesi veya devam
ettirilmesi için kullanılabilir.
5.5 Switch-Case İfadesi
Bu ifade genel olarak menü kullanımında veya sorgu işlemlerinde işe yarar.
Swicht ile ifade alınır case ifadesi ile işlemler sorgulanarak yapılır.
Yazım kurallarına bir göz atalım.
switch (parametreler)
{ case "ifade1" :
case "ifade2" :
... } |
Bir örnek verelim. Burada web sayfamızdaki herhangi bir işlemde çıkıp
çıkmak isteyip istemediği soruluyor. Cevap evet ise işlem istenilen yönde
yönlendiriliyor. Cevap hayır ise döngüden çıkılmaktadır. Burada kendimizi
ziyaretçinin klavyesinde Caps Lock tuşuna basılı olup olmadığını önemsemiyoruz.
Çünkü koşul ifademizi hem küçük harf hem de büyük harfe göre yazıyoruz.
var sec;
sec = prompt ("Çıkmak istiyor musunuz " ,"Evet için
E veya e , Hayır için H veya h giriniz")
switch (sec)
{ case "e" : case "E" :
document.write ("Tekrar hoşgeldiniz")
//yapılması istenen işlemler
case "h": case "H" :
document.write ("Bizi tercih ettiğiniz çin teşekkürler")
break //Çıkılması istendiği için döngüyü kesmek için break komutunu
kullanıyoruz. |
|