Anasayfa / JAVASCRIPT / JavaScript Döngüler (Loops): for, while ve do-while Yapıları

JavaScript Döngüler (Loops): for, while ve do-while Yapıları

JavaScript öğrenme serüveninizde karar yapılarını (if-else) geride bıraktıysanız, şimdi sıra programlamanın en güçlü ve en çok zaman kazandıran araçlarından birine geldi: Döngüler (Loops).

Bir web sitesi geliştirirken veya bir uygulama yazarken aynı işlemi defalarca yapmanız gereken durumlarla sıkça karşılaşırsınız. Örneğin, ekrana 100 defa “Merhaba Dünya” yazdırmak istediğinizi düşünün. Bunu 100 satır console.log("Merhaba Dünya"); yazarak yapmak hem yorucu hem de programlamanın “Kendini Tekrar Etme” (DRY – Don’t Repeat Yourself) ilkesine aykırıdır. İşte tam bu noktada döngüler imdadımıza yetişir. Döngüler, belirli bir kod bloğunu, belirlediğimiz bir koşul doğru (true) olduğu sürece tekrar tekrar çalıştırmamızı sağlar.

Bu kapsamlı rehberimizde, JavaScript’te ilk kez döngüleri öğrenecekler için en temel döngü yapıları olan while, do-while ve for döngülerini, örneklerle ve aralarındaki farklarla inceleyeceğiz.


1. while Döngüsü

İngilizce bir kelime olan “while”, Türkçe’de “-iken”, “-olduğu sürece” anlamlarına gelir. JavaScript’te while döngüsü, parantez içine yazılan ifade (koşul) doğru (true) olarak değerlendirildiği sürece süslü parantezler { } içindeki kod bloğunu çalıştırır. Koşul yanlış (false) olduğunda ise döngü sona erer ve program döngüden sonraki satırdan çalışmaya devam eder.

Sözdizimi (Syntax):

while (koşul) {
    // koşul doğru olduğu sürece çalıştırılacak kodlar
}

Örnek Kullanım: Ekrana 0’dan 9’a kadar olan sayıları yazdıran basit bir while döngüsü oluşturalım:

let i = 0;

while (i < 10) {
    console.log(i);
    i++;
}

Adım Adım Ne Oldu?

  1. Öncelikle i adında bir değişken oluşturduk ve değerini 0 olarak atadık.
  2. while döngüsü başladı ve koşulu kontrol etti: i değeri 10’dan küçük mü? (0 < 10) Bu doğru (true) olduğu için kod bloğunun içine girdi.
  3. console.log(i) ile ekrana 0 yazdırdı ve ardından i++ komutu ile i‘nin değerini 1 artırarak 1 yaptı.
  4. Döngü başa döndü ve koşulu tekrar kontrol etti: 1 < 10. Doğru olduğu için tekrar çalıştı.
  5. Bu işlem i‘nin değeri 10 olana kadar devam etti. i 10 olduğunda, 10 < 10 koşulu yanlış (false) sonucunu verdi ve döngü çalışmayı durdurdu.

Dikkat Edilmesi Gerekenler: Eğer i++ (artırma) işlemini yazmayı unutursanız, i her zaman 0 kalacak ve koşul sürekli doğru olacağı için programınız sonsuz döngüye (infinite loop) girecektir. Bu durum tarayıcınızın veya uygulamanızın çökmesine (donmasına) sebep olur.


2. do-while Döngüsü

do-while döngüsü, while döngüsüne çok benzer ancak aralarında hayati bir fark vardır: do-while döngüsünde kod bloğu koşula bakılmaksızın en az bir kere kesinlikle çalıştırılır.

Normal while döngüsünde koşul en başta kontrol edilir; koşul yanlışsa döngü hiç çalışmaz. Ancak do-while yapısında, önce do bloğu içindeki kod çalıştırılır, koşul ise bloğun sonunda kontrol edilir. Eğer koşul hala doğruysa döngü başa döner, yanlışsa döngü biter.

Sözdizimi (Syntax):

do {
    // koşul doğruysa tekrar edilecek, ancak her halükarda ilk başta 1 kez çalışacak kodlar
} while (koşul);

Örnek Kullanım: Bu döngü türü, özellikle kullanıcıdan geçerli bir veri girmesini beklediğimiz durumlarda çok kullanışlıdır. Örneğin, kullanıcıdan 0 ile 100 arasında bir sayı girmesini isteyelim. Kullanıcıya bu soruyu en az bir kere sormamız gerekir.

let number;

do {
    number = prompt("Lütfen 0 ile 100 arasında bir sayı girin: ");
} while (!(number >= 0 && number < 100));

Bu örnekte, önce kullanıcıya bir prompt penceresi açılır ve sayı girmesi istenir. Girilen sayı 0 ile 100 arasında değilse (koşul true dönerse), döngü tekrar çalışır ve kullanıcıdan tekrar sayı istenir. Sayı 0-100 arasında olduğunda koşul false olur ve döngü biter.


3. for Döngüsü

Geldik JavaScript’te ve diğer birçok programlama dilinde en çok kullanılan döngü türüne. Başlangıçta sözdizimi biraz karmaşık gelebilir, ancak mantığını kavradığınızda en çok tercih edeceğiniz döngü yapısı olacaktır. for döngüsü, bir kodun kaç kere tekrarlanacağını net olarak bildiğimiz durumlarda en ideal seçimdir.

Sözdizimi (Syntax):

for (başlangıç değişkeni; koşul; artırma/azaltma) {
    // çalıştırılacak kodlar
}

for döngüsünün parantezleri içi noktalı virgüllerle (;) ayrılmış üç ana bölümden oluşur:

  1. Değişkeni Başlatma (Initialize): Döngüde kullanılacak sayaç değişkeni burada oluşturulur (örn: let i = 0). Bu kısım döngü başlamadan önce sadece bir kez çalışır.
  2. Koşul (Condition): Döngünün çalışmaya devam edip etmeyeceğini belirler (örn: i < 10). Her adımda (iterasyonda) bu koşul kontrol edilir; doğruysa blok çalışır, yanlışsa döngü sonlanır.
  3. İfade / Artırma (Statement): Kod bloğu çalıştıktan sonra her turun sonunda çalışacak işlemdir (örn: i++ veya i = i + 2).

Örnek Kullanım: Az önce while ile yaptığımız 0’dan 9’a sayma işlemini for döngüsü ile çok daha derli toplu bir şekilde yapabiliriz:

for (let i = 0; i < 10; i++) {
    console.log(i);
}

Diziler (Arrays) ve for Döngüsü: for döngüsünün en büyük gücü diziler (listeler) üzerinde gezinirken ortaya çıkar. Bir dizideki tüm elemanları tek tek ekrana yazdırmak için dizinin sahip olduğu length (uzunluk) özelliğini kullanabiliriz:

let isimler = ["Ahmet", "Ayşe", "Mehmet", "Fatma"];

for (let i = 0; i < isimler.length; i++) {
    console.log(isimler[i]);
}

Burada isimler.length dizinin kaç elemanlı olduğunu verir (4). Döngü i = 0‘dan başlar (çünkü dizilerin ilk elemanı 0. indekstedir) ve 4’e kadar çalışarak tüm isimleri ekrana basar.


4. Döngü Akışını Kontrol Etmek: break ve continue

Döngülerin doğal akışına müdahale etmek istediğimizde iki özel anahtar kelime kullanırız:

  • break: Döngüyü anında tamamen sonlandırır ve döngüden çıkılmasını sağlar. Koşul hala doğru (true) olsa bile break komutu okunduğunda döngü biter. Örneğin, binlerce elemanlı bir listede aradığınız bir veriyi bulduğunuzda, döngünün geri kalanını çalıştırmak gereksizdir. Veriyi bulduğunuz anda break ile döngüyü kırabilirsiniz.
  • continue: Döngüyü tamamen bitirmez, sadece o anki turu (iterasyonu) atlar ve hemen koşulu kontrol etmek üzere döngünün başına geri döner. Örneğin, sadece tek sayıları ekrana yazdırmak istiyorsanız ve o anki sayı çift ise continue diyerek o sayıyı yazdırmadan bir sonraki sayıya atlayabilirsiniz.

Özet: Hangi Döngüyü Ne Zaman Kullanmalıyız?

  • Bir işlemin kaç kere tekrar edeceğini tam olarak biliyorsanız (örneğin bir dizinin eleman sayısı kadar veya 100 defa), for döngüsünü kullanmalısınız.
  • Döngünün kaç kere çalışacağı belli değilse ve bir koşulun sonucuna bağlıysa (örneğin bir oyunda can sıfır olana kadar), while döngüsü en mantıklı seçimdir.
  • Döngü içindeki kodların koşula bakılmaksızın garanti olarak en az bir kez çalışmasını istiyorsanız, o zaman do-while döngüsünü tercih etmelisiniz.

Döngüler, modern programlamanın kalbidir. Yazdığınız kodları manuel olarak tekrar etmek yerine, bu yapıları kullanarak verimliliğinizi artırabilir, çok daha dinamik ve esnek JavaScript uygulamaları geliştirebilirsiniz. Kendi tarayıcı konsolunuzu açın ve bu örnekleri yazarak döngülerin mantığını pratik yaparak pekiştirin!

Etiketlendi:

Cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir