JS Bilgileri -5- JavaScript Döngüleri
Merhaba, Döngüler programlama dilleri için en çok ihtiyaç duyulan fonksiyonların başında gelir. Herhangi bir kodu belirli sayıda tekrar etmek, belirli kurallara göre tekrar etmek, belirli şartlara göre tekrar etmek gibi durumlar her zaman ihtiyaç duyacağımız olaylardır. Örnek olarak ekrana 1’den 100’e kadar sayıları yazmak için 100 satır kod yazmak yerine, tek bir satır kodla bunu yapabiliriz.
for Döngüsü
Bu döngüde, blok içerisindeki kodlar en az bir kere işlenir. Döngünün kaç kere tekrarlanacağı bellidir.
for (sayac = başlangıç değeri; sayaç <= bitiş değeri; artış miktarı) { // çalıştırılacak olan kodlar }
- başlangıç değeri: Döngünün tekrar sayısının ilk değeri.
- bitiş değeri: Döngü başlangıç değerinden itibaren hangi değere ulaşana kadar devam edeceğini bildirir.
- artış miktarı: Başlangıç değerinden bitiş değerine doğru giderken hangi miktarda artacağını gösterir.
for(var i=1; i<5; i++){ alert(i); }
Bu kodu çalıştırdığımızda kod, ekrana sırasıyla 1’den 4’e kadar rakamları mesaj kutusunda açacaktır. Başlangıç değerimizi 1 belirledik, bitiş değerimizi 4 belirledik ( çünkü ilk değeri 1 olan değişkenimiz 5’ten küçük olana kadar sayacak). Ve artış miktarını da i++ yazarak, her seferinde 1 artmasını söyledik.
Şimdi bir başka uygulama yapalım:
var sayi=prompt(); var sonuc=0; for(var i=1;i<=sayi;i++){ sonuc+=i; } alert(sonuc);
Bu scriptimizde bitiş değerini açılan kutuda biz gireceğiz. Ve döngümüzün tarifi: i’nin ilk değeri 1, i açılan kutuda yazılan sayıya eşit olana kadar 1 arttırarak topla ve hepsini topladıktan sonra mesaj kutusunda yaz. Yani, açılan kutuda yazdığımız sayı 10 olursa, bize 1’den 10’a kadar olan sayıların toplamını verir. 1000 olursa, 1’den 1000’e kadar olan sayıların toplamını verir.
Aynı örnekte, yazılan sayıya kadar olan tek sayıların toplamını almak isteseydik bu sefer i’yi 2 şer 2 şer artırmamız gerekirdi. Başlangıç değerimiz 1 olduğu için her 2 artışta tek bir sayıya denk gelirdik:
var sayi=prompt(); var sonuc=0; for(var i=1;i<=sayi;i+=2){ sonuc+=i; } alert(sonuc);
Eğer çift sayıların toplamını isteseydik bu sefer de i’yi 0’dan başlatmamız yeterli olurdu. Başlangıç değerimizi 1 veya 0 yerine dilediğimiz herhangi bir sayı verebilirdik. eğer i’yi 5 ile başlatıp bitiş sayısı olarak da 10 yazarsak 5 ile 10 arasındaki sayıların toplamını alabilirdik.
break ve continue Komutları
Döngü içerisinde belirli bir koşulda döngünün durması veya tekrar çalıştırılması gerekebilir. Döngü hala devam ederken belirli bir durum gerçekleştiğinde artık durdurmak istersek break
komutunu kullanırız.
for(var i=0; i<=5; i++){ if(i==3){break;} alert(i+'. sayı'); }
Koda baktığımızda i’nin ilk değeri 0. Döngü i 5’e eşit olana kadar devam edecek ve 1’er 1’er artırılacak. Ve mesaj kutusuna 0. sayı, 1. sayı şeklinde sırasıyla yazdırılacak. Döngü koşullarımız bunlar. Döngü içerisinde bir farklı koşul daha eklemişiz. 3.sayıya gelindiğinde döngüyü durdur. Bu sayede hem 3.sayıda mesaj kutumuz çıkmayacak hem de döngü devam etmeyecek.
Döngüye belirli bir noktayı atlayarak devam etmek isteyecek olursak da continue
komutumuzu kullanırız.
for(var i=1; i<=5; i++){ if(i==3){continue;} alert(i+'. sayı'); }
Burada da 1’den başlayarak 5’e kadar ekrana sayı numaralarını yazdıracağız. Ancak 3. sayıya gelindiğinde atlanılacak ve 4.sayıdan devam edilecek.
for in Döngüsü
Bu döngüyü diziler ile birlikte kullanacağız. Döngümüz tanımladığımız dizi değişkenindeki tüm öğelerin indislerini sırasıyla gezer ve bu indisler kullanılarak tüm dizi öğelerine erişebiliriz.
<!DOCTYPE html> <html> <body> <script> var kisiler = new Array(); kisiler[0] = "Ahmet"; kisiler[1] = "Mehmet"; kisiler[2] = "Ali"; kisiler[3] = "Hasan"; kisiler[4] = "Hüseyin"; var kisi; for(kisi in kisiler) { document.write(kisiler[kisi] + "<p>"); } </script> </body> </html>
Görünümü:
Çalıştırdığımızda, diziye alınmış kişi isimleri sırasıyla ekrana yazdırılır. Burada ilk defa gördüğümüz bir fonksiyon document.write
içeriğindeki veriyi sayfaya yazdırmaya yarar. Ve for in döngüsü ile dizideki kişileri tek tek ekrana yazdırmış olduk.
while Döngüsü
for döngüsü ile while döngüsü arasında çok büyük bir fark yoktur. for döngüsünde bizim belirteceğimiz başlangıç sayısı artış sonrası bitiş sayısına ulaşana kadar yapmamızı istediğimiz işlem yapılır. while döngüsünde ise scriptimiz yalnızca belirttiğimiz koşul sağlanırsa çalışacaktır.
<!DOCTYPE html> <html> <body> <h1>Rakamlar</h1> <script> var metin = ""; var i = 0; while (i < 10) { metin += "Sayı " + i + "<br>"; i++; } document.write(metin); </script> </body> </html>
Görünümü: