Menü Kapat

Tekrarlama Yapıları (Döngüler)

C++ döngü yapıları, programda bir veya daha çok işlemi belli bir koşul dahilinde birden çok kere çalıştırmamızı sağlar. Belirli döngü yapıları şu şekildedir:

For Döngüsü

For(Başlangıç_değeri atama; koşul; arttırma)
{
    //Yapılacak işlemler
}

Örneğin;

#include <iostream>
int main()
{
    for(int a{1}; a<10; a++)
    {
        std::cout<<a<<"\n";
    }
    return 0;
}

 

While Döngüsü

While(Koşul)
{
   // Yapılacak işlemler
    ....
}

While döngüsü belirlenen koşul dahilinde çalışır. Eğer koşul doğru değilse program while döngüsü içerisine girmez.

Örneğin;

#include <iostream>
int main()
{
    int a{1}; //uniform initialization
    while(a<10)
    {
        std::cout<< a <<"\n";
        a++;
    }
    return 0;
}

 

Yukarıdaki örnekte a değişkenine başlangıç değeri olarak 1 atar ve while döngüsü içerisinde a değişkenin 10’dan küçük olup olmama durumuna göre a değişkeninin değerini arttırıp ekrana yazar.

Döngülerin yineleme saysını belirlemek için sayaç kullanabiliriz. Sayaç basit bir tam sayı değişkeni olabilir. Örneğin:

do while Döngüsü

Do while döngüsü de while döngüsü gibi çalışır fakat while koşuluna gelmeden önce döngü bloğu en az bir kere çalıştırılır sonrasında koşula göre döngü bloğundan çıkılır veya işleme devam edilir.

Çalışma mantığı şu şekildedir:

do
{
    //yapılacak işlemler
    .....
}while(koşul)

Döngü en az bir kere çalıştırılır.While döngüsünden farkı burasıdır. While döngüsü koşul gerçekleşmezse ki çalışmamaktadır.

İç içe döngüler

C++’da iç içe döngüler kullanılabilir ve yaygındırlar. Örnek olarak gösterecek olursak

for(int i{0}; i < 10 ; i++)
{
  for(int j{0}; j < 10 ; j++)
  {
      doSomethingSpecial(); // 10 x 10 = 100 defa tekrarlanacaktir.
  }
}

 

Break ve Continue

Break kısaca içerisinde bulunduğumuz bloktan çıkmamızı sağlar. Derleyici break gördüğü yerde bloğun dışına çıkar. Break deyimi ile döngüler durdurulabilir.

Örnek:

#include <iostream>
int main()
{
    while (true) // sonsuz dongu
    {
        std::cout << "Cikmak icin sifir giriniz. Diger durumlarda calismaya devam eder: ";
        int num;
        std::cin >> num; // Kullanici 0 girerse donguden cikar
        if (num == 0)
            break;
    }
    std::cout << "Program bitti"<<std::endl;
    return 0;

}

 

Continue, döngülerde bloğun sonuna atlayıp bir sonraki yinelemeye devam etmek için kullanılır. Bu deyim genel olarak döngü sırasında gerçekleşmesini istemediğimiz yinelemeler için kullanılır. Örneğin kodumuzun çift sayılar için çalışmasını istemiyorsak bu deyimi kullanabiliriz.

include <iostream>
int main()
{
    for(int i{0}; i < 10 ; ++i)
    {
        if(i % 2 == 0)
            continue;
        std::cout << i << " ";
    }
}

 

Sonsuz Döngü

for(;;)
{
    //yapılacak işlem
    ....
}

//Veya

while(true)
{

}

//Veya

aa:

goto aa;

 

Bir yorum yazınız. Yorumlarınız bizim için değerlidir.