Tüm blog yazıları

JavaScript While Döngüsü

Programlamada aynı işlemi tekrar tekrar yapma ihtiyacı çok sık karşımıza çıkar. Kullanıcı doğru bir giriş yapana kadar beklemek, bir oyunun bitmesini kontrol etmek ya da sistemde bir şart sağlanana kadar işlem yapmak gibi birçok durumda döngülerden faydalanırız. JavaScript'te

eminbasbayan4 dk okuma
JavaScript While Döngüsü

Programlamada aynı işlemi tekrar tekrar yapma ihtiyacı çok sık karşımıza çıkar. Kullanıcı doğru bir giriş yapana kadar beklemek, bir oyunun bitmesini kontrol etmek ya da sistemde bir şart sağlanana kadar işlem yapmak gibi birçok durumda döngülerden faydalanırız. JavaScript'te bunun için birkaç farklı döngü türü olsa da, while döngüsü özellikle kaç kere çalışacağını bilmediğimiz durumlarda devreye girer. Bu yazıda sadece while döngüsü konusunu detaylı bir şekilde işleyeceğiz.

While Döngüsü Nedir?

While döngüsü, adından da anlaşılacağı üzere "sürece" anlamına gelir. Yani belli bir koşul doğru olduğu sürece içinde yazılan kod bloğu çalışmaya devam eder.

Temel yazım şekli şöyledir:

jsx
while (koşul) {
   // Koşul doğruysa çalışacak kodlar
}

Bu yapının mantığı oldukça basittir: JavaScript her seferinde parantez içindeki koşulu kontrol eder. Eğer koşul doğruysa (yani true değerini veriyorsa), süslü parantezler içindeki kodu çalıştırır. Ardından tekrar koşulu kontrol eder. Koşul yanlış (false) olduğunda ise döngü sona erer.

Temel Bir Örnek: 5'ten 15'e Kadar Sayıları Yazdırma

jsx
let number = 5;

while (number <= 15) {
  console.log("Şu anki sayı:", number);
  number++;
}

Bu örnekte number değişkeni 5’ten başlıyor ve her döngüde 1 artırılıyor. Koşul number <= 15 olduğu sürece döngü devam eder. Yani 5, 6, 7, ..., 15 sayılarını sırayla ekrana yazdırır.

Sonsuz Döngüye Dikkat

While döngüsünü kullanırken dikkat etmen gereken en önemli konulardan biri, döngü koşulunu bir noktada değiştirmek zorunda olduğundur. Aksi halde döngü sonsuza kadar devam eder. İşte kötü bir örnek:

jsx
let sayac = 0;

while (sayac < 5) {
  console.log("Merhaba!");
  // sayac++ yazılmadığı için sonsuz döngü olur
}

Bu kod bloğunda sayac değeri hiçbir zaman değişmediği için koşul hep true kalır ve döngü asla bitmez. Tarayıcının donmasına veya işlemcinin yoğun şekilde çalışmasına sebep olabilir.

For Döngüsüne Kıyasla Ne Zaman While Kullanılır?

Genellikle:

  • Eğer döngünün kaç defa çalışacağını biliyorsak, for döngüsü kullanılır.
  • Eğer kaç defa çalışacağını bilmiyorsak, while döngüsü tercih edilir.

Örneğin kullanıcıya belirli bir soruyu sorup doğru cevap alana kadar döngüyü sürdürmek istiyorsak, bu iş için while döngüsü daha uygundur. Çünkü kaç defa sorulacağını önceden bilemeyiz.

Gerçek Hayattan Örnek: Doğru Cevap Gelene Kadar Sorma

Aşağıdaki örnekte, kullanıcıdan bir tahminde bulunması istenir. Doğru tahmini yapana kadar aynı soru tekrar sorulur:

jsx
const correctAnswer = "PandaPower";
let userGuess = prompt("Gizli kelimeyi tahmin et:");

while (userGuess !== correctAnswer) {
  userGuess = prompt("Yanlış! Lütfen tekrar deneyin:");
}

console.log("Tebrikler! Doğru kelimeyi bildiniz.");

Bu örnekte kullanıcı "PandaPower" kelimesini girene kadar döngü devam eder. Giriş doğru olduğunda döngü sona erer ve "Tebrikler!" mesajı görüntülenir.

Bu tür döngüler, kullanıcıdan belirli bir doğrulama alana kadar işlemleri durdurmak için idealdir.

Oyun Gibi Durumlar: Belirsiz Süreli Döngüler

Bir oyun oynandığını düşünelim. Oyun, oyunculardan biri kazanana kadar devam eder. Bu tür durumlarda kaç hamle yapılacağını bilmek mümkün değildir. While döngüsü işte bu gibi senaryolar için idealdir:

jsx
let gameOver = false;

while (!gameOver) {
  // Oyuncu hareket eder
  // Oyun durumu güncellenir
  // Kazanan kontrol edilir

  // Diyelim ki bir noktada oyun bitti:
  gameOver = kontrolEtOyunBittiMi(); // bu fonksiyon true ya da false döner
}

console.log("Oyun sona erdi. Teşekkürler!");

Buradaki yapı, oyun bitene kadar devam eder. Ne zaman biteceğini önceden bilmediğimiz için for döngüsü yerine while döngüsü kullanmak daha mantıklıdır.

Özetle

  • while döngüsü, bir koşul doğru olduğu sürece çalışmaya devam eder.
  • İçeride mutlaka koşulu değiştiren bir işlem yapılmalıdır, aksi takdirde sonsuz döngü oluşabilir.
  • for döngüsü belirli tekrar sayıları için, while ise belirsiz tekrarlar için uygundur.
  • Kullanıcıdan doğru giriş almak veya bir oyun sürecini takip etmek gibi durumlarda while döngüsü ideal çözümdür.

Bu yapıyı öğrendikten sonra artık JavaScript’te döngüleri daha etkili kullanabilir, kullanıcı etkileşimlerine ve dinamik durumlara göre daha esnek kodlar yazabilirsin. Öğrendiklerini denemek için farklı senaryolar oluşturabilir, örneğin sayı tahmini oyunu gibi uygulamalar yapabilirsin.

JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele