C++ | Birlikte Yazılım Öğrenelim Serisi - While döngüsü

YunusEmreOfficial

yedmedya.com.tr
Premium Üye
Yardımsever Üye
Usta Üye
Mesaj
1.395
Çözümler
36
Beğeni
1.025
Puan
1.370
Ticaret Puanı
2
While döngüsü, belirli bir koşul sağlandığı sürece bir kod bloğunu tekrar tekrar çalıştırmak için kullanılır. Koşul doğru olduğu sürece döngü devam eder.

Not: Eğer şart sağlanmassa sonsuz döngüye girer. Şart sağlanana kadar.

Kullanışı ( Temel Yapı'sı ) :​

C++:
Genişlet Daralt Kopyala
while (koşul) {
    // Döngü içinde yapılacak işlemler
}

Örnek: Basit While Döngüsü​


Aşağıda, 1'den 5'e kadar olan sayıları ekrana yazdıran bir while döngüsü örneği bulunmaktadır:

C++:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {
    int i = 1;

    while (i <= 5) {
        cout << i << endl; // i' yi ekrana yazdır.
        i++; // i'yi bir artır.
    }

    return 0;
}

Açıklaması :​

  • Başlangıç: i değişkeni 1 olarak başlatılır.
  • Koşul: i 5'e kadar döngü devam eder.
  • İşlem: Her döngüde i ekrana yazdırılır ve ardından 1 artırılır.

Çıktı :​


Gördüğünüz gibi bu kadar basit bir kullanımı var. Önceki konumuzda goto kullanmıştık. Geriye dönebilmek için, ancak onu burayada uyarlayıp goto yerine while ile de kullanabiliriz. Aşağıdaki alıntıda konuya gidebilirsiniz. Oradaki örneği incelediğinizde goto nun nasıl işlediğini göreceksiniz. Aşağıdaki kodları incelediğinizde ise while döngüsüyle nasıl yazılabileceğini görmüş olacağız.

Alıntı :


While ile kullanımı :

C++:
Genişlet Daralt Kopyala
#include <iostream>
#include <string>
using namespace std;

int main() {
    string kullaniciAdi, sifre;
    string DefaultKullaniciAdi = "admin";
    string DefaultSifre = "12345";

    bool girisBasarili = false; // Girişin başarılı olup olmadığını kontrol eden değişken

    while (!girisBasarili) { // Giriş başarılı olana kadar döngü devam eder
        cout << "Kullanıcı Adı: ";
        cin >> kullaniciAdi;

        cout << "Şifre: ";
        cin >> sifre;

        if (kullaniciAdi == DefaultKullaniciAdi && sifre == DefaultSifre) {
            cout << "Giriş başarılı. Hoş geldiniz!" << endl;
            girisBasarili = true; // Giriş başarılı, döngüyü sonlandır
        } else {
            if (kullaniciAdi != DefaultKullaniciAdi && sifre == DefaultSifre) {
                cout << "Kullanıcı adı hatalı!" << endl;
            } else if (kullaniciAdi == DefaultKullaniciAdi && sifre != DefaultSifre) {
                cout << "Şifre hatalı!" << endl;
            } else {
                cout << "Kullanıcı adı ve şifre hatalı!" << endl;
            }
            cout << "Lütfen tekrar deneyin.\n" << endl;
        }
    }

    return 0;
}

Açıklama​

  • girisBasarili Değişkeni: Girişin başarılı olup olmadığını kontrol etmek için kullanılır. Başlangıçta false olarak ayarlanır.
  • while Döngüsü: girisBasarili false olduğu sürece döngü devam eder. Giriş başarılı olursa girisBasarili true olarak ayarlanır ve döngü sona erer.
  • Kullanıcı Girişi Kontrolü: Kullanıcı adı ve şifre kontrol edilir ve uygun mesajlar gösterilir.
Bu yapı, goto kullanımını ortadan kaldırarak daha temiz ve okunabilir bir kod sağlar. Zaten döngülerin kullanım amacıda budur. Kodu uzatmadan ve daha anlaşılır, okunabilir bir kodlama yapmak.


Olası bir hatalı durumda ne olacağını görelim.

Sonsuz Döngü​


Sonsuz döngü, koşulun sürekli olarak true olduğu ve döngüden çıkışın sağlanmadığı durumlarda meydana gelir. Buna eksik kod hatası veyahut yazım yanlışları meydana getirebilir.

Örneğin:

C++:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {
    int i = 1;

    while (i <= 5) {
        cout << i << endl;
        // i'yi artırmayı unuttuk, bu nedenle sonsuz döngüye girer
    }

    return 0;
}

Yukarıdaki örnekte i değişkeni asla artırılmadığı için, i her zaman 1'dir ve döngü koşulu (i &lt;= 5) sürekli true olur. Bu da programın sonsuz döngüye girmesine neden olur.


Not : Olası hata bildirimleri, iletişim veya gelişmelerden erken haber almak için discord kanalıma gelebilirsiniz.
Linkleri görebilmek için giriş yap veya kayıt ol.


Önemli not: Bu konu ve açacağım diğer konular tamamen kendime ait konular herhangi bir yerden alıntı değildir.
Mmotutkunlarına özel içeriktir.
Lütfen alacaksanız bile kaynak gösteriniz.
Sevgilerle.
 

Bunları çözebilirmisin ?​

1.Soru: Aşağıdaki kod parçası çalıştırıldığında ekrana hangi değerler yazdırılır? ( BASİT )

C++:
Genişlet Daralt Kopyala
int i = 0;
while (i < 3) {
    cout << i << " ";
    i++;
}

2.Soru: Aşağıdaki kod parçasının çıktısı nedir? ( ORTA )
C++:
Genişlet Daralt Kopyala
int j = 5;
while (j > 0) {
    cout << j << " ";
    j -= 2; // j'yi 2 azalt
}

3.Soru: Aşağıdaki kod parçasında, n değişkeni 10 olarak tanımlandığında, döngü sonunda count değişkeninin değeri ne olur? ( ZOR )

C++:
Genişlet Daralt Kopyala
int n = 10;
int count = 0;
while (n > 0) {
    count++;
    n -= 3; // n'yi 3 azalt
    cout << "n Değeri: " << n << "count Değeri: " << count << endl;
}

Soruyu alıntılayıp altına cevabı yazabilirsiniz.
 
Son düzenleme:
1.çıktı;
C++:
Genişlet Daralt Kopyala
0
1
2

2.çıktı;
C++:
Genişlet Daralt Kopyala
5
3
1

3.çıktı;
C++:
Genişlet Daralt Kopyala
count Değeri:4
 
1.çıktı;
C++:
Genişlet Daralt Kopyala
0
1
2

2.çıktı;
C++:
Genişlet Daralt Kopyala
5
3
1

3.çıktı;
C++:
Genişlet Daralt Kopyala
count Değeri:4
Doğru,
Cevabınız için çok teşekkür ederim. Tebrikler. :heyo:

Ancak boşluk ve satırlara dikkat etmeyi unutmayın. :D Fark ettiyseniz endl kullanmadım tek satırda yazması için ve aralarında boşluk olması içinde " " ekledim.
 
Geri
Üst