İç İçe Döngüler

İç İçe Döngüler

Bir döngü yapısının içine başka bir döngü yapısının yerleştirilmesiyle elde edilen yapıya iç içe döngü (nested loop) adı verilir.
JavaScript dilinde, if deyimlerini herhangi bir derinliğe kadar iç içe kullanmak nasıl mümkünse, döngü deyimlerini de iç içe kullanmak mümkün olacaktır. İç içe döngülerde hatırlanacak anahtar bilgi, önce en içteki döngülerin tamamlanması gerektiğidir. Bu konuda aşağıdaki kural iç içe döngüler için daima geçerlidir:
İç içe döngülerde en içteki döngü en önce tamamlanır.

İç İçe Döngüler

Aşağıdaki programda, dış döngü olan i parametreli döngü beş kez çalışacaktır (i=1,2,3,4,5). i'nin her değeri için ise içteki döngü üç kez çalışacaktır (j=1,2,3). Böylece aşağıdaki çıktı elde edilecektir:
<html>
<head>
<TITLE>Nested</TITLE>
</head>
<body bgColor="pink" >
<FONT FACE="Comic sans MS">
<SCRIPT LANGUAGE="javaSCRIPT">
var i,j;
for(i=1;i<=5;i++)
{ document.write("<H3>i="+i+"</H3>");
for(j=1;j<=3;j++)
document.write("j= "+j+" ");
}
</SCRIPT>
</FONT>
</body>
</html>

Ekran Çıktısı;


Çarpım tablosu uygulaması

1'den 10'a kadar sayılar için bir çarpım tablosu hazırlamak istiyoruz. Bunun için iç içe 2 döngü yeterlidir ve her iki döngünün de parametresi 1'den 10'a kadar değişecektir. Uygulamanın listesi aşağıdadır:

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JAVASCRIPT">
var i,j;
for(i=1;i<=10;i++)
{ for (j=1;j<=10;j++)
{document.write(i*j," ");
}
document.write("<BR>");
}
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>

Ekran Çıktısı;


Faktöriyelli terimlerden oluşan seri toplamı uygulaması

Aşağıdaki seri toplamını hesaplayacak bir JavaScript programı yazınız:

1/ 2! + 1/3! + 1/4! +......+ 1/10!

Bu seri toplamını hesaplamak istediğimizde, iç içe iki döngü kullanmak gerektiğini hemen anlarız:
  1. Her adımda, bir toplama işlemi gerektiren, terimlerin toplanmasının gerekli olduğu bir döngü
  2. Yukarıda belirtilen döngünün her parametre değeri için, o adımdaki faktöriyeli hesaplatmak zorunda olduğumuz ve o nedenle yukarıdaki döngünün içinde yer alması gereken bir döngü.

break Deyimi


break deyiminin JavaScript uygulamaları içinde iki farklı kullanım alanı mevcuttur:
  1. switch yapısındaki case seçeneklerinden birinde switch yapısını terk etmek ve switch'i izleyen deyime geçmek. Bu tip kullanımla ilişkili örnekler switch deyimi anlatılırken verilmiştir.
  2. break deyiminin ikinci kullanılış yeri, bir çevrim (loop) yapısı içinden, çevrimi kontrol eden koşul ifadesini beklemeksizin hemen çevrim dışına çıkmak amacıyladır.
Break deyimi bir çevrim içinde yer almışsa bu durumda break deyimi ile karşılaşılır karşılaşılmaz çevrim dışına çıkılır ve çevrimi izleyen deyime geçilir.

Break uygulaması;

<html>
<head>
<TITLE>BREAK UYG.</TITLE>
</head>
<body bgColor="pink" >
<SCRIPT LANGUAGE="javaSCRIPT">
var s,say,ort;
var c;
s=0;
c=0;
window.alert("\nSAYI GİRİŞİNE SON VERMEK İÇİN NEGATİF SAYI GİRİNİZ");
while(true)
{ say=parseInt(window.prompt("Bir sayı giriniz...","0"));
if(say<0) break;
s+=say;
c++;
}
ort=s/c;
document.write("<H3>SAYILARIN TOPLAMI="+s);
document.write("<H3>SAYILARIN ORTALAMASI="+ort);
document.write("<H3>GİRİLEN SAYI MİKTARI="+c);
</SCRIPT>
</body>
</html>

Uygulamayı çalıştırdığınızda sizden negatif sayı girene kadar pozitif sayılar isteyecektir.



Şimdi sırasıyla 2,5 ve 7 değerlerini girdikten sonra -1 değerini girerek programı sonlandıralım. Programın ekran çıktısı aşağıdaki gibi olacaktır.


continue Deyimi


Örnek: Continue

Aşağıdaki uygulamada, for çevriminin parametresi olan i değişkeni 3 ile tam bölünemeyen bir değer alınca bu değerle işlem yapılmayıp, bir sonraki adıma geçilmesi continue deyimi ile sağlanmaktadır. Böylece uygulama, kullanıcı tarafından girilen bir üst limite kadar, 3 ile bölünebilen sayıların toplamını ve bu tip sayıların adedini bulacaktır.

<html>
<head>
<TITLE>BREAK UYG.</TITLE>
</head>
<body bgColor="pink" >
<SCRIPT LANGUAGE="javaSCRIPT">
var s,i,n,c;
n=parseInt(window.prompt("ÜST LİMİT..","0"));
s=0;c=0;
for(i=1;i<=n;i++)
{if(i%3!=0) continue;
document.write("<H3>SAYI="+i);
s+=i;
c++;
}
document.write("<H3>3-"+n+" arasındaki 3 ile bölünebilen sayı miktarı="+c);
document.write("<H3>Bu tür sayıların toplamı="+s);
</SCRIPT>
</body>
</html>

Ekran Çıktısı;


Yorumlar

Bu blogdaki popüler yayınlar

CSS Bir Elemanın Genişliği ve Yüksekliği

JavaScript Dilinde Fonksiyon Çağırma Teknikleri