while - do while Döngüsü

while Döngüsü

İşlemlerin belirli bir koşulun true olduğu sürece yinelendiği döngüdür. Bu döngü türünde belirli bir koşul olur ve koşulun geçerli olduğu sürece döner. Koşulun geçerli olmadığı durumda döngü başlamaz, biter. Kullanım.

while (kosul) {
    //döngü kod bloğu
}
//kodlar...

while döngüsünde koşul true veya false olarak değer alır. Yani yapı şöyledir.

while (true) { // döngüye girilir ve tekrar buraya gelinir.
    //döngü kod bloğu
}
// kodlar...
while (false) { // döngüye girilmez. Çıkıştan devam eder.
    //döngü kod bloğu
}
//kodlar...

Örnek olarak.

let ePosta;
//eposta adresi bir değer alana kadar döngü devam eder.
while (ePosta == undefined || ePosta == '') {
    ePosta = prompt('E-Posta Adresinizi Giriniz.')
}
let toplam;
alert('Toplamı 20 olmayan iki sayı girdiğiniz sürece sürekli uyarı alacaksınız!')
while (toplam != '20') { //toplam 20 olmadığı sürece döngü döner.
    let sayi1 = prompt('1.Sayıyı Giriniz:'),
        sayi2 = prompt('2.Sayıyı Giriniz:');
    toplam = Number(sayi1) + Number(sayi2);
    //toplamları 20 olan sayılar yazarsanız döngü sonlanır
}
alert('Döngü Bitti');
let denemeSayisi = 1, pin = '1234';
alert('PIN Kodunu 3 kere deneme hakkınız var.');
while (denemeSayisi <= 3) {
  let girilenPin = prompt('Pin Kodunu Giriniz: ');
  if (pin === girilenPin) {
  	denemeSayisi = 5; //3'ten büyük bir değer ile sonraki döngüyü engelledik.
  } else {
  	denemeSayisi++;
  }
  if (denemeSayisi == 4) { //4'ile hakkını sonlandırdık.
  	alert('Deneme hakkınız bitmiştir.')
  }
  if (denemeSayisi == 5) { //5 olduysa bilmiştir. DOĞRU uyarısını verelim.
  	alert('DOĞRU. Giriş yapılıyor...')
  }
}

Bu döngü türüne elle oluşturulan bir sayaç koşul olarak verilirse sayaçlı döngü gibi çalışır. Fakat genel kanı sayaçsız olarak kullanım üzerinedir. Örnekler.

// Genel kullanım
let tcNo = prompt('TC Numaraınızı Giriniz: ');
while ( tcNo.length != 11) { //tcNo uzunluğu 11 olmadığı sürece döner
   tcNo = prompt('TC No 11 haneli olmak zorundadır. Tekrar Giriniz: ')
}
alert('TC NO Uzunluğu doğru!');
// Sayaçlı örnek
let i = 1;
while (i <= 3) { //i küçük eşit 3 olduğu sürece
    alert(i);
    i++;
}

number tipinde true sıfır olmayan (0) bir değer, false ise sıfır (0) değeridir. Örnek.

let sayi = 5;
while (sayi) { //baştan true
    alert(sayi);
    sayi--; // 0 olunca false olur.
}

string tipinde ise true boş olmayan herhangi bir değer, false ise boş ('') olan değerdir. Örnek.

let karakterDizisi = ' ',
    sayac = 1;
    
while (karakterDizisi) { //baştan true
    if (sayac > 3) {
        karakterDizisi = ''; // sayac 3'ü geçerse boş değer ile false olur.
    } else {
        alert(`While Döngüsü Sayacı: ${sayac}`);
    }
    sayac++;
}

Eğer while bloklarında tek satırlık kod yazacaksanız blok açmadan aynı satırda da yazabilirsiniz. Örnek.

let i = 3;
while (i) alert(i--);

do while Döngüsü

do while döngüsü ile döngüye ait kod blokları bir kez çalıştırılır ardından koşul kontrol edilir eğer koşul true ise tekrar başa dönerek döngüye devam eder kodları yeniden çalıştırır, false ise döngü olarak devam etmez. while döngüsünden farkı, koşul false bile olsa kod blokları en az bir sefer yürütülmüş olur.

Örnek olarak.

let i = 0;
do {
    i++;
    alert(i);
} while(i == 0); // koşul doğru olmasa bile bir kez yürütülmüş olur.

Başka bir örnek olarak.

let ePosta; // ePosta şu an false
//eposta adresi bir değer alana kadar döngü devam eder.
do {
    ePosta = prompt('E-Posta Adresinizi Giriniz.');
} while ( !ePosta ); // ePosta değer girilmezse false, değili (!) true
alert(ePosta);

Farklı bir örnek olarak.

let ePosta; // ePosta şu an false
//eposta adresi bir değer ve doğrulaması olana kadar döngü devam eder.
do {
    ePosta = prompt('E-Posta Adresinizi Giriniz.');
    // ePosta için değer girilirse true olur boşsa false
    
    if ( ePosta && !confirm(`Eposta Adresinizi Onaylayın\n${ePosta}`) ) {
        ePosta = '';
    }
} while ( !ePosta );
alert(ePosta);

Last updated