Takip et

JavaScript’te While ve Do…While Döngüleri: Temel Tekrarlama Yapıları

JavaScript’te While ve Do…While Döngüleri: Temel Tekrarlama Yapıları Programlamada belirli bir kod bloğunu birden fazla kez çalışt

JavaScript’te While ve Do…While Döngüleri: Temel Tekrarlama Yapıları

Programlamada belirli bir kod bloğunu birden fazla kez çalıştırma ihtiyacı sıkça doğar. Bu tekrarlayan görevleri otomatikleştirmek için döngüler (loops) kullanılır. JavaScript’te yaygın olarak kullanılan döngü türlerinden ikisi while ve do...while döngüleridir. Bu rehberde, her iki döngünün nasıl çalıştığını, sözdizimlerini, örneklerini ve hangi senaryolarda tercih edilmeleri gerektiğini detaylı bir şekilde inceleyeceğiz.

Döngüler Neden Önemlidir?

Döngüler, kod tekrarını azaltır, programları daha verimli ve okunabilir hale getirir. Örneğin, bir listedeki tüm elemanları işlemek, kullanıcıdan geçerli bir girdi alınana kadar tekrar tekrar sormak veya belirli bir koşul karşılanana kadar bir işlemi sürdürmek gibi görevler, döngüler olmadan çok daha karmaşık ve hataya açık olurdu.

While Döngüsü: Koşul Öncesi Kontrol

while döngüsü, belirli bir koşul doğru (true) olduğu sürece bir kod bloğunu tekrar tekrar çalıştıran bir yapıdır. Bu döngü, “ön koşullu döngü” olarak da bilinir, çünkü döngüye başlamadan önce koşul kontrol edilir. Eğer koşul başlangıçta yanlış (false) ise, döngünün içindeki kod bloğu hiçbir zaman çalışmayabilir.

While Döngüsünün Sözdizimi


    while (koşul) {
        // Koşul doğru olduğu sürece çalışacak kod
        // (Döngü koşulunu bir noktada yanlış yapacak bir ifade olmalı)
    }
    

While Döngüsü Nasıl Çalışır?

  1. Döngüye başlamadan önce (koşul) ifadesi değerlendirilir.
  2. Eğer koşul true ise, döngünün süslü parantezleri {} içindeki kod bloğu çalıştırılır.
  3. Kod bloğu çalıştırıldıktan sonra, koşul tekrar değerlendirilir.
  4. Bu süreç, koşul false olana kadar devam eder.
  5. Koşul false olduğunda, döngü sona erer ve program döngüden sonraki ilk kod satırından devam eder.

While Döngüsü Örnekleri

Örnek 1: Basit Bir Sayaç

Bu örnekte, sayac değişkeni 5’ten küçük olduğu sürece konsola değerini yazdırıyoruz ve her iterasyonda sayac‘ı bir artırıyoruz. Bu artırma işlemi, döngünün bir noktada sona ermesini sağlar.


    let sayac = 0;

    while (sayac < 5) {
        console.log("Sayı: " + sayac);
        sayac++; // Bu ifade olmazsa sonsuz döngü oluşur!
    }
    // Çıktı:
    // Sayı: 0
    // Sayı: 1
    // Sayı: 2
    // Sayı: 3
    // Sayı: 4
    

Örnek 2: Kullanıcıdan Geçerli Girdi Alma

Kullanıcıdan belirli bir girdi alınana kadar tekrar tekrar sormak gibi durumlarda while döngüsü oldukça kullanışlıdır.


    let kullaniciCevabi = "";

    while (kullaniciCevabi !== "evet" && kullaniciCevabi !== "hayır") {
        kullaniciCevabi = prompt("Lütfen 'evet' veya 'hayır' yazın:").toLowerCase();
        if (kullaniciCevabi !== "evet" && kullaniciCevabi !== "hayır") {
            alert("Geçersiz giriş. Lütfen tekrar deneyin.");
        }
    }
    console.log("Cevabınız: " + kullaniciCevabi);
    

Pratik Bilgi: Sonsuz Döngülerden Kaçınma

while döngülerinde en yaygın hatalardan biri, döngü koşulunun hiçbir zaman false olmaması durumunda ortaya çıkan "sonsuz döngüdür". Bir sonsuz döngü, programınızın takılmasına ve yanıt vermemesine neden olur. Bunu önlemek için, döngü koşulunu bir noktada yanlış yapacak bir ifadeyi (genellikle bir değişkenin güncellenmesi) döngü bloğunun içine eklediğinizden emin olun.

Do...While Döngüsü: Koşul Sonrası Kontrol

do...while döngüsü de bir koşul doğru olduğu sürece bir kod bloğunu çalıştırır, ancak önemli bir farkı vardır: kod bloğu en az bir kez çalıştırıldıktan sonra koşul kontrol edilir. Bu nedenle, do...while döngüleri "son koşullu döngü" olarak adlandırılır. Koşul başlangıçta yanlış olsa bile, döngünün içindeki kod bloğu mutlaka bir kez çalışacaktır.

Do...While Döngüsünün Sözdizimi


    do {
        // En az bir kez çalışacak kod
        // (Döngü koşulunu bir noktada yanlış yapacak bir ifade olmalı)
    } while (koşul); // Koşul doğru olduğu sürece tekrar çalışır
    

Do...While Döngüsü Nasıl Çalışır?

  1. Önce do bloğundaki kod çalıştırılır.
  2. Kod bloğu çalıştırıldıktan sonra, while (koşul) ifadesi değerlendirilir.
  3. Eğer koşul true ise, döngü tekrar eder ve do bloğu bir kez daha çalıştırılır.
  4. Bu süreç, koşul false olana kadar devam eder.
  5. Koşul false olduğunda, döngü sona erer.

Do...While Döngüsü Örnekleri

Örnek 1: Basit Bir Sayaç

while döngüsüyle aynı sayacı do...while ile de yapabiliriz. Ancak burada i=0 iken bile kod bloğu bir kez çalışır, sonra i < 5 koşulu kontrol edilir.


    let i = 0;

    do {
        console.log("Sayı: " + i);
        i++;
    } while (i < 5);
    // Çıktı:
    // Sayı: 0
    // Sayı: 1
    // Sayı: 2
    // Sayı: 3
    // Sayı: 4
    

Örnek 2: Minimum Bir Kez Çalışması Gereken Durum (Menü Sistemi)

Bir kullanıcıya menü seçenekleri sunup geçerli bir seçim yapana kadar tekrar sormak gibi durumlarda do...while döngüsü idealdir, çünkü menüyü kullanıcıya en az bir kez göstermeniz gerekir.


    let secim;

    do {
        secim = prompt("Lütfen bir işlem seçin:\n1. Bakiye Sorgulama\n2. Para Yatırma\n3. Para Çekme\n4. Çıkış");
        switch (secim) {
            case "1":
                console.log("Bakiyeniz: XXX TL");
                break;
            case "2":
                console.log("Para yatırma işlemi...");
                break;
            case "3":
                console.log("Para çekme işlemi...");
                break;
            case "4":
                console.log("Çıkış yapılıyor...");
                break;
            default:
                alert("Geçersiz seçim. Lütfen 1-4 arasında bir sayı girin.");
        }
    } while (secim !== "4");
    console.log("İşlem tamamlandı.");
    

While ve Do...While Döngülerinin Karşılaştırması ve Ne Zaman Hangisini Kullanmalı?

İki döngü arasındaki temel fark, koşul kontrolünün ne zaman yapıldığıdır. Bu fark, hangi döngünün belirli bir senaryo için daha uygun olduğunu belirler.

Temel Farklar

  • while döngüsü: Koşul döngüye girmeden önce kontrol edilir. Eğer koşul başlangıçta false ise, döngü bloğu hiçbir zaman çalışmayabilir.
  • do...while döngüsü: Kod bloğu en az bir kez çalıştırıldıktan sonra koşul kontrol edilir. Bu nedenle, döngü bloğu mutlaka en az bir kez çalışır.

Ne Zaman while Kullanmalı?

  • Döngünün hiç çalışmama ihtimali varsa.
  • Döngüye başlamadan önce bir koşulun sağlanması gerekiyorsa.
  • İterasyon sayısı önceden belli değilse ve bir koşulun karşılanmasına bağlı olarak döngünün devam etmesi gerekiyorsa (örneğin, dosya sonuna ulaşana kadar okuma).

Ne Zaman do...while Kullanmalı?

  • Döngüdeki kodun en az bir kez çalışmasını garanti etmeniz gerekiyorsa.
  • Özellikle kullanıcıdan girdi alırken ve bu girdinin geçerliliğini kontrol ederken (kullanıcıya mutlaka bir kez sormanız gerekir).
  • Menü sistemleri veya ilk çalıştırmada bir kaynak yüklemeniz/bir durumu başlatmanız gereken durumlar.

Döngü Kontrol Deyimleri: break ve continue

while ve do...while döngülerinin davranışını daha esnek bir şekilde kontrol etmek için break ve continue anahtar kelimelerini kullanabiliriz.

break Deyimi

break deyimi, içinde bulunduğu döngüyü tamamen sonlandırmak ve döngüden hemen çıkmak için kullanılır. Döngüden çıktıktan sonra program, döngüden sonraki ilk kod satırından devam eder.


    let sayi = 0;
    while (true) { // Bu sonsuz bir döngü gibi görünür, ama break ile kontrol edilir
        console.log("Sayı: " + sayi);
        sayi++;
        if (sayi === 5) {
            break; // Sayı 5 olunca döngüyü kır
        }
    }
    console.log("Döngü break ile sonlandırıldı.");
    // Çıktı:
    // Sayı: 0
    // Sayı: 1
    // Sayı: 2
    // Sayı: 3
    // Sayı: 4
    // Döngü break ile sonlandırıldı.
    

continue Deyimi

continue deyimi, döngünün mevcut iterasyonunu atlamak ve bir sonraki iterasyona geçmek için kullanılır. continue karşılaşıldığında, döngü bloğunun kalan kısmı atlanır ve döngü koşulu tekrar kontrol edilerek bir sonraki iterasyona geçilir (eğer koşul hala doğruysa).


    let j = 0;
    while (j < 10) {
        j++;
        if (j % 2 === 0) { // Eğer sayı çiftse, bu iterasyonu atla
            continue;
        }
        console.log("Tek sayı: " + j);
    }
    // Çıktı:
    // Tek sayı: 1
    // Tek sayı: 3
    // Tek sayı: 5
    // Tek sayı: 7
    // Tek sayı: 9
    

Sonuç ve Sıkça Sorulan Sorular (SSS)

while ve do...while döngüleri, JavaScript'te tekrarlayan görevleri yönetmek için güçlü ve esnek araçlardır. Temel farkları, koşulun döngüye girmeden önce mi yoksa en az bir kez çalıştıktan sonra mı kontrol edildiğidir. Bu farkı anlamak, doğru döngü yapısını seçerek daha sağlam ve verimli kod yazmanıza yardımcı olacaktır. break ve continue deyimleri ise döngü akışını daha da hassas bir şekilde kontrol etmenizi sağlar.

Sıkça Sorulan Sorular (SSS)

S: Sonsuz döngü nedir ve nasıl önlenir?

C: Sonsuz döngü, döngü koşulunun hiçbir zaman false olmayacak şekilde ayarlandığı bir döngüdür. Bu, programınızın takılmasına neden olur. Önlemek için, döngü bloğu içinde döngü koşulunu bir noktada yanlış yapacak bir ifade (örneğin, bir sayacı artırma veya bir boolean bayrağı değiştirme) bulundurduğunuzdan emin olun.

S: while ve do...while arasındaki temel fark nedir?

C: Temel fark, koşulun kontrol edilme zamanıdır. while döngüsü koşulu başta kontrol eder; bu yüzden döngü hiç çalışmayabilir. do...while döngüsü ise kodu en az bir kez çalıştırdıktan sonra koşulu kontrol eder, bu da kod bloğunun mutlaka bir kez çalışmasını garanti eder.

S: Hangi döngüyü ne zaman kullanmalıyım?

C: Döngünün hiç çalışmama ihtimali varsa veya döngüye başlamadan önce bir koşulun sağlanması gerekiyorsa while döngüsünü tercih edin. Döngüdeki kodun en az bir kez çalışmasını garanti etmeniz gerekiyorsa (örneğin, kullanıcıdan geçerli bir girdi alınana kadar tekrar sormak gibi), do...while döngüsünü kullanın.

S: break ve continue ne işe yarar?

C: break deyimi, içinde bulunduğu döngüyü tamamen sonlandırır ve programı döngüden çıkarır. continue deyimi ise döngünün mevcut iterasyonunu atlar ve bir sonraki iterasyona geçilmesini sağlar.

S: for döngüsü yerine while ne zaman tercih edilir?

C: Eğer iterasyon sayısı önceden kesin olarak biliniyorsa (örneğin bir dizideki eleman sayısı kadar dönmek), genellikle for döngüsü daha okunabilir ve uygundur. Ancak, iterasyon sayısı önceden bilinmediğinde veya bir koşulun karşılanmasına bağlı olarak döngünün devam etmesi gerektiğinde (örneğin, kullanıcı "çıkış" yazana kadar), while döngüsü daha uygun bir seçenektir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.