Döngü (Loop) Oluşturma

Döngü (Loop) Oluşturma

Döngüsel işlem veya tekrarlı işlem (iterasyon, İng: iteration) bilgisayarı aynı işlemler grubunu belirli bir koşul sağlanana kadar tekrar tekrar yapmak için yönlendirir. JavaScript dilinde döngü yapısını oluşturmak için üç deyim mevcuttur:
  • while deyimi
  • do... while deyimi
  • for deyimi

while Deyimi


While deyiminin yazılış biçimi aşağıdaki gibidir:

while(ifade) Deyim;

veya

while(ifade) { Deyim1; Deyim2; ... Deyim_n; }

while deyiminin çalışma biçimi aşağıdaki gibidir:

Önce ifade hesaplanır. İfade doğru ise deyim çalıştırılır. Deyim çalıştırıldıktan sonra, programın kontrolü while deyiminin başına geçer ve işlem tekrarlanır yani ifade yeniden hesaplanarak sonucuna göre işlem yapılır. Bu işlem, ifade yanlış (false) olana kadar sürer. Bu durumda program deyimi izleyen noktaya gider.

İfadenin değeri doğru (true) olduğu sürece while bir sonsuz döngü (infinite loop) oluşturur.
Deyim yerinde genellikle bir deyimler grubu da bulunabilir; bu durumda while yapısının, deyimler grubunu gövde içine almak için gerekli olan, {} sembolleri kullanılmış olan ikinci şekli söz konusu olacaktır. İkinci şekli de benzer biçimde çalışır; ifade tekrar tekrar hesaplanır; ifadenin değeri doğru olduğu sürece bir sonsuz döngü oluşur ve bunun her adımında Deyim1,Deyim2,..Deyim_n ile belirtilen deyimler grubu yeniden çalıştırılır.

While çevrim yapısı ile çevrim içindeki deyim grubu ya da işlem grubunun, kontrol edilen bir koşula bağlı olarak tekrarlanabilmesi olanağı mevcuttur. Böylece, işlemlerin ne kadar tekrarlanacağının önceden belli olmadığı, ancak bir değişken ya da ifadenin değerinin kontrol edilmesiyle akışa karar verilen uygulamalarda bu çevrim yapısını kullanmak uygun olacaktır.

 

Örnek uygulama:

Aşağıdaki JavaScript uygulamasında, bilgisayara girilen pozitif sayıların miktarı ve toplamı bulunmakta ve program negatif bir sayı girişi ile durdurulmaktadır:

<html>
<head>
</head>
<body text="blue" bgcolor="pink">
<SCRIPT LANGUAGE="javaSCRIPT">
var say,sayac,toplam;
say=window.prompt("BIR TAM SAYI GIRINIZ ISLEMLERI DURDURMAK ICIN NEGATIF BIR TAM SAYI GIRINIZ","0");
say=parseFloat(say);
sayac=0;
toplam=0;
while(say>0)
{
sayac++;
toplam+=say;
say=window.prompt("BIR TAM SAYI GIRINIZ... ","0");
say=parseFloat(say);
}
document.write("<H3 >GIRDIGINIZ POZITIF SAYILARIN MIKTARI="+sayac+"</H3>");
document.write("<H3 >GIRDIGINIZ POZITIF SAYILARIN TOPLAMI="+toplam+"</H3>");
</SCRIPT>
</body>
</html>


Uygulamayı çalıştırdığınızda program sizden negatif sayı girene kadar pozitif sayı girmenizi isteyecektir. Sırasıyla 5,9,11 değerlerini girip son olarak -1 değerini girip programı sonlandıralım. Bu durumda ekran çıktısı aşağıdaki gibi olacaktır.



do...while Deyimi


while deyiminin önemli bir karakteristiği test koşulunun çevrimin başlangıcında olmasıdır. Bunun anlamı, ilk anda koşulun yanlış olması halinde, (false) while gövdesinin hiçbir zaman çalıştırılmayacağıdır.
Gövdeyi, hiç olmazsa bir kere çalıştırmanız gereken durumlar vardır. Bu durumlar çok yaygın değildir fakat gerektiği zaman do...while deyimini kullanmalısınız.

do...while çevrim yapısının yazılış biçimi aşağıdaki gibidir:
Do{ Deyim1; Deyim2; ... Deyim_n; }while(İfade) ;

do ...while deyimi ile ilişkili HTML-JavaScript kodu

<HTML> <HEAD> <SCRIPT LANGUAGE="JAVASCRIPT"> var say,topl,ort; say=1; topl=0; do {topl=topl+say; say++; }while(say<6); ort=topl/(say-1); document.write("<H3>SAYILARIN TOPLAMI="+topl+"</H3>") document.write("<H3>SAYILARIN ORTALAMASI="+ort+"</H3>") </SCRIPT> </HEAD> <BODY> </BODY> </HTML>

Ekran çıktısı;


for Deyimi


for deyimi ve for deyimi kullanılarak oluşturulacak döngü yapısı, işlemlerin tekrar sayısının önceden belli olduğu durumlarda kullanılır.
For deyiminin yazılış biçimi aşağıdaki gibidir:

for(ifade1;ifade2;ifade3) Deyim;
Deyim_x;

veya 

for(ifade1;ifade2;ifade3)
{
Deyim1;
Deyim2;
...
Deyim_n;
}
Deyim_x;

şeklindedir.
  1. İlk önce ifade1 hesaplanır; bu genellikle bir veya daha fazla değişkene ilk değer atayan bir atama deyimidir.
  2. Sonra ifade2 hesaplanır. Bu, deyimin koşulsal kısmıdır.
  3. ifade2 yanlışsa, programın kontrolü for deyiminden çıkar ve program akışı programdaki bir sonraki deyime geçer (deyim_x). Şayet ifade2 doğru ise, deyim veya deyimler grubu icra edilir.
  4. Deyim veya blok yapılı şekilde deyimler grubu icra edildikten sonra, ifade3 çalıştırılarak hesaplanır. O zaman döngü gene geriye, ifade2 ye döner.
İfade1 sadece bir kere çalıştırılır; ifade2 ve ifade3 ise, döngünün her tekrarında (iteration) çalıştırılır. For deyimini anlamanın en iyi yolu, onu aşağıdaki gibi, while deyimiyle karşılaştırmaktır.

for (ifade1; ifade2; ifade3) deyim;

yapısı;

ifade1; while (ifade2) { deyim; ifade3; }

yapısı ile tamamen aynıdır.
Aşağıda basit bir örnekle for döngü yapısını daha iyi anlamaya çalışalım.

for deyimi uygulaması: 1'den n'e kadar tam sayıların toplamı


<HTML>
<HEAD>
<SCRIPT LANGUAGE="JAVASCRIPT">
var i,topl,n,m,ort;
m=window.prompt("UST SINIRI GIRINIZ..(n sayisi)","0");
n=parseInt(m);
topl=0;
for(i=1;i<=n;i++)
topl+=i;
ort=topl/n
document.write("<H3>SAYILARIN TOPLAMI="+topl+"</H3>")
document.write("<H3>SAYILARIN ORTALAMASI="+ort+"</H3>")
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>


Bu uygulamada, for'un başlangıç koşulunu belirleyen ve ifade1 olarak belirttiğimiz ifade i=1 şeklindedir ve bu for döngüsünün parametresi diyebileceğimiz i değişkenine 1 değerini bir ilk değer olarak atamaktadır.

Faktöriyel hesabı

for döngüsünü kullanacağımız diğer bir örnek program ise faktöriyel hesabı programı olacaktır. Matematikte faktöriyel, bilindiği gibi,

for çevrimi çıktılarının bir HTML tablosu içine yerleştirilmesi

Aşağıdaki JavaScript koduyla 1'den 15'e kadar sayılar, kareleri ve küpleri ile birlikte bir HTML tablosu içine yerleştirilmektedir.

<html>
<head>
<TITLE>FOR UYGULAMASI</TITLE>
</head>
<body bgColor="pink" >
<FONT FACE="Comic sans MS">
<SCRIPT LANGUAGE="javaSCRIPT">
document.writeln( "<TABLE BORDER = '2' WIDTH = '50%'>" );
document.writeln( "<TR><TD WIDTH = '80'><B>SAYI</B></TD>" );
document.writeln(
"<TD><B>SAYININ KARESİ</B></TD>" );
document.writeln(
"<TD><B>SAYININ KÜBÜ</B></TD></TR>" );
for ( var i = 1; i <= 15; ++i ) {
kare=i*i;
kup=i*i*i;
document.writeln( "<TR><TD>" + i + "</TD><TD>" +
kare + "</TD><TD>"+kup+ "</TD></TR>");

}
document.writeln( "</TABLE>" );
</SCRIPT>
</FONT>
</body>
</html>

Ekran Çıktısı



Yorumlar

Bu blogdaki popüler yayınlar

İç İçe Döngüler

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

JavaScript Dilinde Fonksiyon Çağırma Teknikleri