Programlamada Döngü Yapıları: Temel Kavramlar ve Uygulamalar - kapak
Teknoloji#döngüler#programlama#c++#while döngüsü

Programlamada Döngü Yapıları: Temel Kavramlar ve Uygulamalar

Bu özet, programlamada kullanılan temel döngü yapılarını, yani while, for ve do-while döngülerini, ayrıca break ve continue komutlarını ve iç içe döngüleri akademik bir yaklaşımla açıklamaktadır.

i23s95xd9 Nisan 2026 ~30 dk toplam
01

Sesli Özet

7 dakika

Konuyu otobüste, koşarken, yolda dinleyerek öğren.

Sesli Özet

Programlamada Döngü Yapıları: Temel Kavramlar ve Uygulamalar

0:007:01
02

Flash Kartlar

25 kart

Karta tıklayarak çevir. ← → ile gez, ⎵ ile çevir.

1 / 25
Tüm kartları metin olarak gör
  1. 1. Programlamada döngülerin temel amacı nedir?

    Döngüler, bilgisayarların belirli görevleri yinelemeli olarak gerçekleştirmesini sağlar. Bu, programcının başlangıçta belirttiği adım sayısı kadar veya belirli bir koşul gerçekleşene kadar devam eden tekrarlı işlemler için kullanılır. Bu sayede kod tekrarı önlenir ve programlar daha verimli hale gelir.

  2. 2. Döngüler, programlamada hangi açılardan etkilidir?

    Döngüler, programlamada zaman ve maliyetin düşürülmesi açısından oldukça etkilidir. Tekrar eden kod bloklarını yazmak yerine, döngüler sayesinde aynı işlemleri daha az kodla ve daha verimli bir şekilde gerçekleştirmek mümkündür. Bu, geliştirme sürecini hızlandırır ve kaynak kullanımını optimize eder.

  3. 3. C++ programlama dilinde kullanılan başlıca döngü yapıları nelerdir?

    C++ programlama dilinde kullanılan başlıca döngü yapıları for döngüsü, while döngüsü, do-while döngüsü ve iç içe döngülerdir. Her bir döngü yapısı, farklı senaryolarda ve ihtiyaçlara göre tercih edilebilir, programcılara esneklik sunar.

  4. 4. While döngüsünün çalışma prensibini açıklayınız.

    While döngüsü, belirli bir koşul doğru olduğu sürece çalışmaya devam eder. Döngünün başlatılması ve sürdürülmesi tamamen bu koşulun doğruluğuna bağlıdır. Koşul sağlanmadığında döngü başlatılmaz veya çalışma esnasında koşul bozulursa döngü sona erer. Bu, koşula bağlı tekrarlı işlemler için idealdir.

  5. 5. While döngüsünün genel sözdizimi nasıldır?

    While döngüsünün sözdizimi 'while (koşul) { işlem(ler) }' şeklindedir. Burada 'koşul', döngünün devam edip etmeyeceğini belirleyen mantıksal bir ifadedir ve 'işlem(ler)' ise koşul doğru olduğu sürece tekrarlanacak kod bloğunu ifade eder. Koşul parantez içinde yer alır.

  6. 6. While döngüsünün akış diyagramındaki mantığı nasıl özetlenebilir?

    While döngüsünün akış diyagramında önce koşul kontrol edilir. Koşul doğru (1) ise döngü içindeki işlemler yapılır ve tekrar koşul kontrolüne dönülür. Koşul yanlış (0) ise döngüden çıkılır ve program akışı döngüden sonraki ilk ifadeye geçer. Bu, koşulun başta kontrol edildiğini gösterir.

  7. 7. While döngüsünde sonsuz döngü oluşumunu engellemek için ne yapılmalıdır?

    While döngüsünde sonsuz döngü oluşumunu engellemek için döngü koşulunu etkileyen bir değişken (sayaç gibi) kullanılmalı ve bu değişken her yinelemede güncellenmelidir. Örneğin, bir sayaç değişkeni her adımda artırılarak koşulun bir noktada yanlış hale gelmesi sağlanır. Aksi takdirde program takılı kalabilir.

  8. 8. Break komutunun programlamadaki amacı nedir ve nasıl kullanılır?

    Break komutu, döngü koşulu bozulmadan istenilen bir sonuca ulaşıldığında döngüyü sonlandırmak için kullanılır. Program break komutu ile karşılaştığında, döngü o noktada sona erer ve kontrol döngüden sonraki ilk ifadeye geçer. Bu, acil çıkış veya belirli bir durumun yakalanması için faydalıdır.

  9. 9. Break komutu hangi döngü türlerinde kullanılabilir?

    Break komutu, while, do-while, for ve iç içe döngüler dahil olmak üzere tüm döngü yapılarında kullanılabilir. Bu komut, belirli bir şart sağlandığında döngüden erken çıkış yapmak için esneklik sağlar. Böylece program akışı daha dinamik yönetilebilir.

  10. 10. Sonsuz bir while döngüsünden break komutu ile nasıl çıkış sağlanabilir? Bir örnek veriniz.

    While (true) ile oluşturulan sonsuz bir döngüden, belirli bir koşul sağlandığında break komutu ile çıkış sağlanabilir. Örneğin, klavyeden girilen sayıların karekökünü hesaplayan bir programda, negatif bir sayı girildiğinde break kullanılarak döngü sonlandırılabilir. Bu, kullanıcı girişine bağlı sonlandırmalar için kullanışlıdır.

  11. 11. Continue komutunun programlamadaki işlevi nedir?

    Continue komutu, döngü yinelemesi esnasında programın bu komuttan sonra gelen ifadeleri değerlendirmemesini ve döngünün bir sonraki yineleme adımı ile yeniden başlatılmasını sağlar. Yani, mevcut iterasyonun geri kalanını atlar ve bir sonraki iterasyona geçer. Bu, belirli koşullarda bazı adımları atlamak için kullanılır.

  12. 12. Continue komutu hangi döngü türlerinde kullanılabilir?

    Continue komutu da while, do-while, for ve iç içe döngü yapıları dahil olmak üzere tüm döngü türlerinde kullanılabilir. Bu komut, belirli koşullarda döngünün mevcut adımını atlayıp bir sonraki adıma geçmek için kullanılır. Böylece istenmeyen durumlar için kodun geri kalanının çalışması engellenir.

  13. 13. Continue komutunun geçersiz girişleri atlama senaryosuna bir örnek veriniz.

    Bir öğrencinin vize ve final notu ortalamasını hesaplayan bir programda, girilen notların 0-100 aralığında olup olmadığını kontrol etmek için continue kullanılabilir. Geçersiz bir not girildiğinde, continue ile o iterasyon atlanarak kullanıcıdan tekrar geçerli bir değer girmesi istenebilir. Bu, veri doğrulama süreçlerinde etkilidir.

  14. 14. Do-while döngüsünün while döngüsünden temel farkı nedir?

    Do-while döngüsü, while döngüsüne benzer ancak döngü denetimi döngü sonunda gerçekleştirilir. Bu özelliği sayesinde döngü içerisindeki ifadeler, koşul doğru olmasa bile en az bir kez çalıştırılır. While döngüsünde ise koşul başta kontrol edilir ve yanlışsa hiç çalışmayabilir. Bu, 'en az bir kez çalış' garantisi sağlar.

  15. 15. Do-while döngüsünün genel sözdizimi nasıldır?

    Do-while döngüsünün sözdizimi 'do { işlem(ler) } while (koşul);' şeklindedir. Önce 'işlem(ler)' bloğu çalıştırılır, ardından 'koşul' kontrol edilir. Koşul doğruysa döngü tekrar eder, yanlışsa sona erer. Noktalı virgülün while ifadesinden sonra geldiğine dikkat edilmelidir.

  16. 16. Do-while döngüsünün akış diyagramındaki mantığı nasıl işler?

    Do-while döngüsünün akış diyagramında, işlemler önce yapılır, ardından koşul kontrol edilir. Koşul doğru ise işlemler tekrar yapılır, yanlış ise döngüden çıkılır. Bu yapı, işlemlerin en az bir kez garanti edildiği durumlar için idealdir ve koşulun döngü sonunda değerlendirildiğini gösterir.

  17. 17. Do-while döngüsü hangi tür senaryolarda tercih edilebilir?

    Do-while döngüsü, kullanıcının bir işlem yapmasını ve ardından devam edip etmeyeceğine karar vermesini gerektiren durumlarda tercih edilebilir. Örneğin, klavyeden girilen bir sayının sıfırdan küçük, büyük veya eşit olup olmadığını bulan ve kullanıcı isteğine göre devam eden bir program bu döngü ile yazılabilir. Menü tabanlı uygulamalarda sıkça kullanılır.

  18. 18. For döngüsünün temel kullanım amacı nedir?

    For döngüsü, döngünün başlangıç değeri, son değeri ve artış miktarı tanımlamaları ile yineleme sayısının önceden belirlendiği durumlarda kullanılır. Sabit sayıda tekrar eden işlemler için idealdir. Genellikle bir sayacın belirli bir aralıkta ilerlemesi gereken durumlarda tercih edilir.

  19. 19. For döngüsünün koşullu döngülerden (while, do-while) farkı nedir?

    For döngüsünün koşullu döngülerden farkı, döngünün başlangıcı ve devamı için belirli bir koşulun gerçekleşmesine ihtiyaç duymamasıdır. For döngüsünde yineleme sayısı genellikle başlangıçta belirlenir ve döngü değişkeni üzerinden kontrol edilir. Bu, döngü parametrelerinin tek bir satırda tanımlanmasını sağlar.

  20. 20. For döngüsünün genel sözdizimi nasıldır?

    For döngüsünün sözdizimi 'for (Başlangıç Değeri; Son Değer; Artış) { işlem(ler) }' şeklindedir. Bu üç parametre, döngünün nasıl başlayacağını, ne zaman biteceğini ve her adımda nasıl ilerleyeceğini tanımlar. Bu kompakt yapı, döngü kontrolünü tek bir yerde toplar.

  21. 21. For döngüsünün akış diyagramında hangi üç parametre belirtilir?

    For döngüsünün akış diyagramında Başlangıç Değeri (döngü değişkeninin ilk değeri), Son Değer (döngünün bitiş koşulu) ve Artış (döngü değişkeninin her adımda nasıl değişeceği) olmak üzere üç temel parametre açıkça belirtilir. Bu parametreler döngünün tüm yaşam döngüsünü tanımlar.

  22. 22. For döngüsünde tanımlanan döngü değişkeninin etki alanı genellikle neresidir?

    For döngüsünde tanımlanan döngü değişkeni genellikle döngünün başlangıç kısmında tanımlanır ve etki alanı genellikle döngü ile sınırlıdır. Yani, döngü bittikten sonra bu değişkene dışarıdan erişilemez. Bu, değişkenin kapsamını daraltarak olası hataları azaltır.

  23. 23. For (;;) yapısı ne anlama gelir ve nasıl kullanılır?

    For (;;) yapısı, başlangıç değeri, son değer ve artış miktarı belirtilmeden oluşturulan sonsuz bir döngüyü ifade eder. Bu tür döngüler, manuel olarak sonlandırılmadığı sürece (örneğin break komutu veya Ctrl+C ile) sürekli çalışır. Genellikle bir koşul sağlanana kadar sürekli işlem yapılması gereken durumlarda kullanılır.

  24. 24. İç içe döngüler (nested loops) nedir?

    İç içe döngüler, bir döngü içerisinde başka döngü yapıları tanımlanması durumudur. Bu yapı, çok boyutlu yinelemeli işlemleri gerçekleştirmek için kullanılır ve dıştaki döngünün her bir yinelemesinde içteki döngü tamamen çalışır. Bu, karmaşık veri yapıları veya desenler oluşturmak için gereklidir.

  25. 25. İç içe döngüler genellikle hangi tür işlemlerde kullanılır?

    İç içe döngüler, genellikle matrisler, tablolar veya desenler oluşturmak gibi çok boyutlu yinelemeli işlemlerde kullanılır. Örneğin, belirli bir satır ve sütun sayısına sahip bir şekil veya tablo çizmek için idealdir. İki boyutlu diziler üzerinde işlem yaparken de sıkça başvurulur.

03

Bilgini Test Et

15 soru

Çoktan seçmeli sorularla öğrendiklerini ölç. Cevap + açıklama.

Soru 1 / 15Skor: 0

Programlamada döngülerin temel amacı nedir?

04

Detaylı Özet

13 dk okuma

Tüm konuyu derinlemesine, başlık başlık.

Bölüm 7: Döngüler - Kapsamlı Çalışma Materyali

📚 Kaynak Bilgisi

Bu çalışma materyali, bir dersin sesli transkripti ve kopyalanmış metin kaynaklarından derlenmiştir. İçerik, C++ programlama dilindeki döngü yapılarını detaylı bir şekilde ele almaktadır.


💡 Giriş: Döngülerin Programlamadaki Rolü

Döngüler, programlamanın temel mantıksal yapılarından biridir ve bilgisayarların belirli görevleri yinelemeli (tekrar tekrar) gerçekleştirmesini sağlar. Bu yineleme işlemi, programcının başlangıçta belirttiği adım sayısı kadar veya belirli bir koşul gerçekleşene kadar devam edebilir. Döngüler, programlamada zaman ve maliyetin düşürülmesi açısından oldukça etkilidir. Bu bölümde, C++ programlama dilinde kullanılan başlıca döngü yapıları olan for, while, do-while döngüleri ve iç içe döngüler detaylı bir şekilde incelenecektir.

✅ Anahtar Kavramlar ve Öğrenme Hedefleri

📚 Anahtar Kavramlar

  • while döngüsü
  • for döngüsü
  • do-while döngüsü
  • İç içe döngüler
  • break komutu
  • continue komutu
  • Sonsuz döngü

🎯 Öğrenme Hedefleri

Bu bölümü tamamladıktan sonra öğrenci:

  • Döngülerin temel kavramlarını ve programlamadaki önemini bilir.
  • while, for ve do-while döngülerinin sözdizimlerini ve akış diyagramlarını anlar.
  • Her bir döngü türünün ne zaman ve hangi durumlarda kullanılacağını ayırt edebilir.
  • break ve continue komutlarının döngü kontrolündeki rollerini kavrar.
  • İç içe döngü yapılarını oluşturabilir ve kullanabilir.
  • Verilen problemlere uygun döngü yapılarını seçerek çözüm üretebilir.

1️⃣ Döngü Türleri

C++ programlama dilinde dört temel döngü yapısı bulunmaktadır:

  1. while Döngüsü
  2. do-while Döngüsü
  3. for Döngüsü
  4. İç İçe Döngüler (Nested Loops)

Döngüler aynı zamanda sabit döngüler (yineleme sayısı önceden bilinen, örn: for) ve koşullu döngüler (bir koşul doğru olduğu sürece çalışan, örn: while, do-while) olarak sınıflandırılabilir.

1.1. While Döngüsü

📚 Tanım: Koşullu döngüler sınıfında yer alan while döngüsü, belirli bir koşul doğru olduğu sürece çalışmaya devam eder. Döngünün başlatılması ve sürdürülmesi tamamen bu koşulun doğruluğuna bağlıdır. Koşul sağlanmadığında döngü başlatılmaz veya çalışma esnasında koşul bozulursa döngü sona erer.

📝 Sözdizimi (Syntax):

while (koşul) {
    // işlem(ler)
}

📊 Akış Diyagramı:

Başla
  |
  V
Koşul (Doğru mu?)
  | Evet (1)
  V
İşlem(ler)
  |
  V
Koşul (Doğru mu?) <-- Tekrar buraya döner
  | Hayır (0)
  V
Bitir

Akış diyagramında 1 (true) ve 0 (false) mantıksal ifadeleri temsil eder. Koşul doğru olduğu sürece işlemler yapılır, yanlış olduğunda döngüden çıkılır.

Örnek 7.1: Ekrana 5 defa "Ankara Üniversitesi" yazdıran program

#include <iostream>
using namespace std;

int main() {
    int a = 0; // Sayaç değişkeni
    while (a < 5) { // a, 5'ten küçük olduğu sürece döngü devam eder
        cout << "Ankara Universitesi\n";
        a = a + 1; // Sayaç her adımda artırılır
    }
    return 0;
}

Açıklama: a değişkeni 0'dan başlar. Her döngüde "Ankara Üniversitesi" yazılır ve a bir artırılır. a 5 olduğunda koşul (a < 5) yanlış olur ve döngü sona erer. Sayaç artırılmazsa program sonsuz döngüye girer.

Örnek 7.2: 1'den 10'a kadar sayıları yan yana yazdıran program

#include <iostream>
using namespace std;

int main() {
    int i = 1;
    while (i <= 10) {
        cout << i << ", ";
        i = i + 1;
    }
    return 0;
}

1.1.1. break Komutu

📚 Tanım: break komutu, döngü koşulu bozulmadan istenilen bir sonuca ulaşıldığında döngüyü sonlandırmak için kullanılır. Program break komutu ile karşılaştığında, döngü o noktada sona erer ve kontrol döngüden sonraki ilk ifadeye geçer. Bu komut while, do-while, for ve iç içe döngülerde kullanılabilir.

Örnek 7.3: Negatif sayı girilene kadar karekök hesaplayan program

#include <iostream>
#include <cmath> // sqrt fonksiyonu için
using namespace std;

int main() {
    double sayi, sonuc;
    while (true) { // Sonsuz döngü
        cout << "Karekökü hesaplanacak sayıyı giriniz (Negatif sayı çıkış yapar): ";
        cin >> sayi;
        if (sayi < 0) { // Negatif sayı girilirse
            break; // Döngüyü sonlandır
        }
        sonuc = sqrt(sayi);
        cout << sayi << " sayısının karekökü: " << sonuc << endl;
    }
    cout << "Negatif bir sayı girildiği için döngü sonlandırılmıştır!" << endl;
    return 0;
}

Açıklama: while(true) ile sonsuz bir döngü oluşturulur. Kullanıcı negatif bir sayı girdiğinde if (sayi < 0) koşulu sağlanır ve break komutu döngüyü anında sonlandırır.

1.1.2. continue Komutu

📚 Tanım: continue komutu, döngü yinelemesi (iteration) esnasında programın bu komuttan sonra gelen ifadeleri değerlendirmemesini ve döngünün bir sonraki yineleme adımı ile yeniden başlatılmasını sağlar. Bu komut da while, do-while, for ve iç içe döngü yapılarında kullanılabilir.

Örnek 7.4: Geçersiz not girişlerini atlayarak öğrenci ortalaması hesaplayan program

#include <iostream>
using namespace std;

int main() {
    int vize, final;
    double ortalama;
    char cikis;

    while (true) {
        cout << "Öğrencinin Vize Notunu Giriniz (0-100): ";
        cin >> vize;
        if (vize > 100 || vize < 0) { // Geçersiz not kontrolü
            cout << "Geçerli Bir Değer Giriniz (0-100 arası)!" << endl;
            continue; // Bu iterasyonu atla, bir sonraki iterasyona geç
        }

        cout << "Öğrencinin Final Notunu Giriniz (0-100): ";
        cin >> final;
        if (final > 100 || final < 0) { // Geçersiz not kontrolü
            cout << "Geçerli Bir Değer Giriniz (0-100 arası)!" << endl;
            continue; // Bu iterasyonu atla, bir sonraki iterasyona geç
        }

        ortalama = vize * 0.3 + final * 0.8; // Vize %30, Final %80
        cout << "Öğrencinin Ortalaması: " << ortalama << endl;

        cout << "Programdan Çıkış İçin 'C', Devam İçin 'D' Giriniz: ";
        cin >> cikis;
        if (cikis == 'C' || cikis == 'c') { // Çıkış kontrolü (büyük/küçük harf duyarlılığına dikkat)
            break;
        }
    }
    cout << "Program kullanıcının isteği ile sonlandırılmıştır!" << endl;
    return 0;
}

⚠️ Önemli Not: C++ büyük-küçük harf duyarlı (Case Sensitive) bir programlama dilidir. Bu örnekte çıkış için hem 'C' hem de 'c' kontrol edilmiştir.

1.2. Do-While Döngüsü

📚 Tanım: do-while döngüsü, while döngüsüne oldukça benzer ancak döngü denetimi döngü sonunda gerçekleştirilir. Bu özelliği sayesinde döngü içerisindeki ifadeler en az bir kez çalıştırılır.

📝 Sözdizimi (Syntax):

do {
    // işlem(ler)
} while (koşul);

📊 Akış Diyagramı:

Başla
  |
  V
İşlem(ler)
  |
  V
Koşul (Doğru mu?)
  | Evet (1)
  V
İşlem(ler) <-- Tekrar buraya döner
  | Hayır (0)
  V
Bitir

Akış diyagramından da rahatlıkla görülebileceği üzere döngü içerisindeki işlem(ler) en az bir kez çalıştırılır ve döngü denetimi bu işlem sonrasında gerçekleştirilir.

Örnek 7.5: Kullanıcı isteğine göre sayı kontrolü yapan program

#include <iostream>
using namespace std;

int main() {
    int sayi;
    char devam;
    do {
        cout << "Bir Sayı Giriniz: ";
        cin >> sayi;
        if (sayi == 0) {
            cout << "Girilen Sayı 0'a eşittir.\n";
        } else if (sayi < 0) {
            cout << "Girilen Sayı 0'dan küçüktür.\n";
        } else { // sayi > 0
            cout << "Girilen Sayı 0'dan büyüktür.\n";
        }
        cout << "Yeni Bir Sayı Girmek İstiyor musunuz? (Evet için E, Hayır için H'ye basınız): ";
        cin >> devam;
    } while (devam == 'E' || devam == 'e'); // Kullanıcı 'E' veya 'e' girene kadar devam et
    return 0;
}

Açıklama: Program, kullanıcıdan bir sayı alıp kontrol eder ve sonucu yazdırır. Ardından kullanıcıya devam edip etmek istemediğini sorar. Koşul (devam == 'E' || devam == 'e') doğru olduğu sürece döngü devam eder. İlk başta koşul kontrol edilmediği için işlemler en az bir kez yapılır.

1.3. For Döngüsü

📚 Tanım: for döngüsü, yineleme sayısının önceden belirlendiği durumlarda kullanılan sabit bir döngü türüdür. Döngünün başlangıç değeri, son değeri ve artış miktarı tanımlamaları ile döngünün kaç defa tekrar edeceği döngü başında belirtilir.

📝 Sözdizimi (Syntax):

for (Başlangıç Değeri; Koşul; Artış Miktarı) {
    // işlem(ler)
}

Döngünün başlangıç değeri, koşul ve artış miktarı arasında noktalı virgül (;) karakteri kullanılır. Bu döngü yapısında döngü değişkeni ve değişken türü döngü başlangıç kısmında tanımlanabilir.

📊 Akış Diyagramı:

Başla
  |
  V
Başlangıç Değeri
  |
  V
Koşul (Doğru mu?)
  | Evet (1)
  V
İşlem(ler)
  |
  V
Artış Miktarı
  |
  V
Koşul (Doğru mu?) <-- Tekrar buraya döner
  | Hayır (0)
  V
Bitir

Örnek 7.6: Kullanıcının girdiği sayıya kadar olan sayıları toplayan program

#include <iostream>
using namespace std;

int main() {
    int sayi, toplam = 0;
    cout << "1'den büyük bir sayı giriniz: ";
    cin >> sayi;

    for (int i = 1; i <= sayi; i++) { // i=1'den başlayıp sayi'ya kadar birer birer artır
        toplam += i; // toplam = toplam + i;
    }
    cout << "1 ile " << sayi << " arasındaki sayıların toplamı: " << toplam << endl;
    return 0;
}

Açıklama: Döngü değişkeni i for döngüsü içinde tanımlanmıştır (int i = 1). Bu durumda i değişkeninin etki alanı sadece for döngüsü ile sınırlıdır.

Örnek 7.7: Girilen sayının asal olup olmadığını bulan program

#include <iostream>
using namespace std;

int main() {
    int sayi;
    int sayac = 0; // Bölen sayısını tutar

    cout << "Bir Sayı Giriniz: ";
    cin >> sayi;

    for (int i = 1; i <= sayi; i++) {
        if (sayi % i == 0) { // sayi, i'ye tam bölünüyorsa
            sayac++; // Bölen sayısını artır
        }
    }

    if (sayac == 2) { // Sadece 1'e ve kendisine bölünüyorsa (2 bölen)
        cout << "Girilen Sayı Asaldır" << endl;
    } else {
        cout << "Girilen Sayı Asal Değildir" << endl;
    }
    return 0;
}

Açıklama: Asal sayı tanımından yola çıkılır: Sadece 1'e ve kendisine tam bölünebilen sayılar asal sayılardır (yani 2 adet tam böleni vardır). % (modulo) operatörü, bir sayının diğer sayıya bölümünden kalanı verir.

1.3.1. Sonsuz For Döngüsü

for döngüsü, başlangıç değeri, koşul ve artış miktarı belirtilmeden de kullanılabilir.

for (;;) {
    cout << "Ankara Universitesi\n";
}

Bu örnekte, döngü başlangıç değeri, son değer ve artış miktarı belirtilmemiştir. Döngü bu haliyle sonsuz bir döngü formuna dönüşmüştür. Başlangıçta program döngü içerisine girer ve manuel olarak sonlandırılmadığı sürece (örneğin Ctrl+C ile) sürekli çalışır.

1.4. İç İçe Döngüler (Nested Loops)

📚 Tanım: Karar ifadelerinde (if) olduğu gibi, döngü yapılarının da iç içe oluşturulması mümkündür. Bir döngü içerisinde başka döngü yapıları tanımlanabilir. Bu yapıya iç içe döngüler denir. İç içe döngüler, genellikle matrisler, tablolar veya desenler oluşturmak gibi çok boyutlu yinelemeli işlemlerde kullanılır.

Örnek 7.9: 3x3 yıldız (*) deseni oluşturan program (İç içe for)

#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 3; i++) { // Dış döngü: Satırları kontrol eder
        for (int j = 1; j <= 3; j++) { // İç döngü: Sütunları kontrol eder
            cout << "* "; // Yıldız ve boşluk yazdır
        }
        cout << "\n"; // Her satır bitiminde alt satıra geç
    }
    return 0;
}

Açıklama: Program ilk çalıştırıldığında önce dıştaki döngü (i) ve hemen ardından içteki döngü (j) başlatılır. i değişkeni 1 değerine sahipken, j değişkeni 1'den 3'e kadar değerler alır. j değişkeninin her bir değerinde ekrana bir adet * karakteri basılır. İçteki döngü bittiğinde (j 3 olduğunda), dıştaki döngünün etki alanındaki cout << "\n"; ifadesi çalıştırılır ve ekranda bir alt satıra geçilir. Bu işlem, i değişkeninin ikinci değeri (2) için döngü yeniden başlatılarak devam eder.

Örnek 7.10: Farklı döngü türlerinin iç içe kullanımı (for ve while)

#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 5; i++) { // Dış döngü (for): Satırları kontrol eder (1'den 5'e kadar)
        int sayi = 1; // Her dış döngü iterasyonunda sayi'yı sıfırla
        while (sayi <= i) { // İç döngü (while): Sütunları kontrol eder (i'ye kadar)
            cout << sayi << " ";
            sayi++;
        }
        cout << "\n"; // Her satır bitiminde alt satıra geç
    }
    return 0;
}

Ekran Çıktısı:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Açıklama: Bu örnekte bir for döngüsü içerisinde bir while döngüsü kullanılmıştır. Dıştaki for döngüsü satır sayısını (i) kontrol ederken, içteki while döngüsü her satırdaki sayıların miktarını ve değerini (sayi <= i) belirler. sayi değişkeni her dış döngü iterasyonunda 1'e sıfırlandığı için her satır 1'den başlar.


🎯 Özel Odak Alanı: Detaylı Açıklama ve Sorular

💡 Döngü Seçimi İçin İpuçları

Hangi döngüyü kullanacağınız, çözmeye çalıştığınız probleme bağlıdır:

  • for döngüsü: ✅ Eğer bir işlemi belirli sayıda tekrar etmeniz gerekiyorsa veya bir aralıkta (başlangıç ve bitiş değeri belli) işlem yapacaksanız for döngüsü en uygunudur. Sayaç değişkeninin başlangıcı, bitişi ve artış miktarı tek bir satırda tanımlanır, bu da kodu daha düzenli yapar.
  • while döngüsü: ✅ Eğer bir koşul doğru olduğu sürece bir işlemi tekrar etmeniz gerekiyorsa ve tekrar sayısı önceden belli değilse while döngüsü tercih edilir. Örneğin, kullanıcıdan geçerli bir giriş alana kadar tekrar sormak gibi durumlarda idealdir.
  • do-while döngüsü: ✅ Eğer döngü içerisindeki işlemlerin en az bir kez çalıştırılması garanti edilmeli ve koşul daha sonra kontrol edilmeli ise do-while döngüsü kullanılır. Örneğin, bir menü gösterip kullanıcıdan seçim alırken, menünün en az bir kez gösterilmesi gerektiği durumlarda faydalıdır.

⚠️ Sonsuz Döngüler ve Kaçınma Yolları

📚 Tanım: Sonsuz döngü, döngü koşulunun asla yanlış (false) olmaması ve bu nedenle döngünün sürekli çalışmaya devam etmesidir. Bu durum genellikle programın kilitlenmesine veya beklenmedik davranışlara yol açar.

Nedenleri:

  • Sayaç değişkeninin güncellenmemesi (örn: a++ unutulması).
  • Döngü koşulunun her zaman doğru olacak şekilde yanlış yazılması (örn: while (1) veya while (true) kullanıp break ile çıkış yapılmaması).

Nasıl Önlenir:

  • Döngü değişkenlerinin her iterasyonda doğru şekilde güncellendiğinden emin olun.
  • Koşullu döngülerde, döngüyü sonlandıracak bir durumun veya koşulun varlığını kontrol edin.
  • while(true) gibi sonsuz döngüler kullanıyorsanız, döngüden çıkışı sağlayacak bir break komutunun uygun bir koşul altında tetiklendiğinden emin olun.

💡 Döngü Kontrol Komutlarının Detaylı Kullanımı (break ve continue)

  • break:

    • İşlevi: Döngüyü tamamen sonlandırır ve kontrolü döngüden sonraki ilk ifadeye taşır.
    • Kullanım Alanı: Belirli bir koşul sağlandığında döngünün geri kalanını çalıştırmadan çıkmak istediğinizde. Örneğin, bir arama işleminde aranan eleman bulunduğunda döngüyü sonlandırmak.
    • Örnek: Kullanıcıdan pozitif sayı alana kadar tekrar sormak ve pozitif sayı girildiğinde döngüden çıkmak.
    int sayi;
    while (true) {
        cout << "Pozitif bir sayı giriniz: ";
        cin >> sayi;
        if (sayi > 0) {
            break; // Pozitif sayı girildi, döngüden çık
        }
        cout << "Hatalı giriş! Lütfen pozitif bir sayı girin.\n";
    }
    cout << "Girilen pozitif sayı: " << sayi << endl;
    
  • continue:

    • İşlevi: Mevcut iterasyonu atlar ve döngünün bir sonraki iterasyonuna geçer. continue komutundan sonra gelen kodlar o iterasyonda çalıştırılmaz.
    • Kullanım Alanı: Belirli bir koşul sağlandığında mevcut iterasyonda bazı işlemleri atlamak ve döngünün bir sonraki adımına geçmek istediğinizde. Örneğin, bir listedeki çift sayıları atlayıp sadece tek sayılar üzerinde işlem yapmak.
    • Örnek: 1'den 10'a kadar olan sayılardan sadece tek olanları ekrana yazdırmak.
    for (int i = 1; i <= 10; i++) {
        if (i % 2 == 0) { // Eğer sayı çift ise
            continue; // Bu iterasyonu atla, bir sonraki sayıya geç
        }
        cout << i << " "; // Sadece tek sayılar yazdırılır
    }
    // Çıktı: 1 3 5 7 9
    

📝 Pratik Uygulama Soruları

  1. Soru 1: Faktöriyel Hesaplama Kullanıcıdan bir tam sayı alan ve bu sayının faktöriyelini (n!) hesaplayan bir C++ programını for döngüsü kullanarak yazınız. (Örn: 5! = 5 * 4 * 3 * 2 * 1 = 120)

    // Çözüm İpucu: Faktöriyel 1'den başlar ve girilen sayıya kadar çarpılır.
    // int faktoriyel = 1;
    // for (int i = 1; i <= sayi; i++) { faktoriyel *= i; }
    
  2. Soru 2: Şifre Doğrulama Kullanıcıdan "admin" şifresini girmesini isteyen bir program yazınız. Şifre doğru girilene kadar kullanıcıdan tekrar şifre isteyiniz. Bu işlemi do-while döngüsü kullanarak gerçekleştiriniz.

    // Çözüm İpucu: Şifre değişkeni tanımlayın. do bloğunda şifre isteyin, while koşulunda şifrenin doğruluğunu kontrol edin.
    // string sifre;
    // do { cin >> sifre; } while (sifre != "admin");
    
  3. Soru 3: Belirli Aralıktaki Sayıların Toplamı (Atlama ile) 1'den 20'ye kadar olan sayılardan, 5'e tam bölünebilenleri atlayarak diğer sayıların toplamını bulan bir C++ programını while döngüsü ve continue komutu kullanarak yazınız.

    // Çözüm İpucu: Bir sayaç ve toplam değişkeni kullanın. Eğer sayı 5'e bölünüyorsa continue ile atlayın.
    // int i = 1, toplam = 0;
    // while (i <= 20) { if (i % 5 == 0) { i++; continue; } toplam += i; i++; }
    
  4. Soru 4: Ters Üçgen Deseni Aşağıdaki ekran görüntüsünü verecek olan C++ programını iç içe for döngüsü kullanarak yazınız.

    *****
    ****
    ***
    **
    *
    
    // Çözüm İpucu: Dış döngü satırları (5'ten 1'e), iç döngü sütunları (dış döngü değişkenine bağlı olarak) kontrol etmeli.
    // for (int i = 5; i >= 1; i--) { for (int j = 1; j <= i; j++) { cout << "*"; } cout << "\n"; }
    

📝 Bölüm Özeti

Döngüler, programlama dillerinde yinelemeli işlemlerin gerçekleştirilmesinde temel bir role sahiptir. Programlarda tekrar eden işlemlerin etkin bir şekilde uygulanması gerektiğinde döngü yapıları kullanılmaktadır. Döngüler, programcılara daha esnek ve dinamik bir kod geliştirme imkânı sunarak, karmaşık algoritmaların daha sade bir biçimde ifade edilmesine olanak tanır.

Programlama süreçlerinde döngüler, sabit (for) veya koşullu (while, do-while) yapılar şeklinde tercih edilebilir. Koşullu döngüler, belirli bir koşul sağlandığı sürece çalışmaya devam ederken, sabit döngülerde yineleme sayısı önceden tanımlanır. break ve continue gibi kontrol komutları, döngülerin akışını daha esnek bir şekilde yönetmeye olanak tanır. İç içe döngüler ise çok boyutlu veya karmaşık desen oluşturma gibi durumlarda güçlü bir araçtır.

Döngü yapıları, algoritmaların verimli bir şekilde uygulanması ve programların performansının artırılması açısından programlama dillerinin vazgeçilmez bir bileşenidir.

Kendi çalışma materyalini oluştur

PDF, YouTube videosu veya herhangi bir konuyu dakikalar içinde podcast, özet, flash kart ve quiz'e dönüştür. 1.000.000+ kullanıcı tercih ediyor.

Sıradaki Konular

Tümünü keşfet
Swift Kontrol Akış Yapıları ve Yapay Zeka Destekli iOS Uygulamaları

Swift Kontrol Akış Yapıları ve Yapay Zeka Destekli iOS Uygulamaları

Bu içerik, yapay zeka destekli mobil uygulama geliştirmede Swift'in if/else, switch ve döngü gibi kontrol akış yapılarını detaylıca ele almaktadır. Mantıksal karar alma ve veri işleme süreçleri incelenmiştir.

9 dk Özet 25 15 Görsel
Veri Türleri ve Aritmetik İşleçler

Veri Türleri ve Aritmetik İşleçler

Bu içerik, programlamadaki temel veri türlerini, değişken tanımlama ve isimlendirme kurallarını, atama ve aritmetik işleçleri ile işleç önceliği kavramlarını detaylı bir şekilde açıklamaktadır.

7 dk Özet 25 15
C++ Yazılım Geliştirme Ortamları ve Temel Programlama

C++ Yazılım Geliştirme Ortamları ve Temel Programlama

Bu özet, C++ programlama dilinin temel geliştirme ortamlarını, program derleme ve çalıştırma süreçlerini, hata denetimini ve temel girdi/çıktı işlemlerini akademik bir yaklaşımla ele almaktadır.

5 dk Özet 25 15
Python'da Döngüler, Fonksiyonlar ve Listeler

Python'da Döngüler, Fonksiyonlar ve Listeler

Bu içerik, Python programlama dilinin temel yapı taşları olan for ve while döngüleri, fonksiyonlar ve listeler konularını akademik bir yaklaşımla ele almaktadır. Bilişim sınavları için kritik öneme sahip bu kavramlar detaylandırılmıştır.

4 dk Özet 25 15
Python Programlama Temelleri

Python Programlama Temelleri

Bu özet, Python programlama dilinin temel yapılarını, veri tiplerini, kontrol akışını ve ana veri yapılarını akademik bir yaklaşımla sunmaktadır.

6 dk 15
Python Temel Programlama Alıştırmaları

Python Temel Programlama Alıştırmaları

Bu özet, temel bilişim teknolojileri ve yazılım dersi çalışma sorularını kapsar. Koşullu ifadeler, döngüler, listeler ve fonksiyonlar gibi Python programlama prensipleri incelenmektedir.

6 dk 25 15
Bilgisayar Bilimlerinin Temel Kavramları

Bilgisayar Bilimlerinin Temel Kavramları

Bu içerik algoritmalar, yazılım türleri, dosya ve klasör yönetimi ile işletim sisteminin işlevleri gibi bilgisayar bilimlerinin temel kavramlarını akademik bir yaklaşımla incelemektedir.

6 dk 25 15
Bash Script Temelleri: Sistem Otomasyonuna Giriş

Bash Script Temelleri: Sistem Otomasyonuna Giriş

Bu içerik, Bash scriptlerinin temel kavramlarını, yapılarını, kontrol akış mekanizmalarını ve gelişmiş kullanım yöntemlerini akademik bir yaklaşımla ele almaktadır. Sistem otomasyonu ve verimlilik artışı için kritik bir araçtır.

7 dk Özet 25 15