C# Dersleri 13 - Döngüler Nedir? Ne İşe Yarar?

     100'e kadar olan sayıların çarpımını hesaplayacak bir uygulama yazmak istesek; 1*2*3*....*99*100 şeklinde tüm sayıları yazmanın nasıl bir işkence olduğunu düşünün. Kaldı ki bu kodu yazsanız bile, sonra 105'e kadar olan sayıların çarpımını hesaplamanız gerektiğinde tekrar kodlarınızı güncellemeniz gerekecektir. İşte burada hayatımıza döngüler giriyor.

     Tüm yazılım dillerinde olduğu gibi C#'da da, yazdığımız projelerde döngüler önemli bir yer kaplar. Döngü; bir kod bloğunun X defa tekrar edilmesini sağlar. Temel anlamda 4 farklı döngü(loop) vardır.

     1 - While Loop

     While döngüsü, muhtemelen döngüler arasında en kolayıdır. Belirttiğiniz koşul geçerli olduğu sürece bir kod bloğunun çalıştırılmasını sağlar. Sonsuz döngüye girmesi en kolay döngü de While döngüsüdür sanırım.     

private void btnDevam_Click(object sender, EventArgs e)
{
    int num = 0;
    while (num < 5)
    {
        MessageBox.Show(num.ToString());
        num = num + 1;
    }
}

     While döngüsü yazarken, önce while keywordunun yanına parantezler içinde koşulunuzu belirtirsiniz. Benim örneğimde koşul; num değişkeninin değerinin 5'ten küçük olması. Başlangıçta num 0, yani 5'ten küçük. Kod bloğu çalışıyor, MessageBox'ta num gösteriliyor. Sonra num değerini 1 arttırıyoruz yani num 1'e eşit oluyor. Koşulu hala sağladığı için kod bloğu tekrar çalışıyor. Bu döngü num 5'e eşit olana kadar devam ediyor. num 5 olunca 5'ten küçük koşulunu sağlamadığı için while döngüsünden çıkılıyor. Eğer döngünün içinde num değişkeninin değerini arttırmayı unutsaydık, num hep 0 kalacaktı ve uygulamamız sonsuz döngüye girecekti.

     2 - Do Loop

     While döngüsü ile çalışma mantığı olarak aynıdır. Tek farkı, koşulun sağlanıp sağlanmadığı kontrolü kod bloğu çalıştırılmadan önce değil; çalıştıktan sonra yapılır. Yani bir Do-while döngüsünün her zaman en az 1 kere çalışacağı kesindir çünkü koşulun kontrolünü en son yapıyor.     

private void btnDevam_Click(object sender, EventArgs e)
{
    int num = 0;
    do
    {
        MessageBox.Show(num.ToString());
        num = num + 1;
    } while (num < 5);
}

     3 - For Loop 

     For döngüsü, syntax olarak While döngüsünden biraz farklıdır. Belli bir koşul sağlandığı sürece değil de döngünüzün kaç defa dönmesini gerektiğini biliyorsanız For döngüsünü kullanabilirsiniz.     

private void btnDevam_Click(object sender, EventArgs e)
{
    int num = 5;

    for (int i = 0; i < num; i++)
    {
        MessageBox.Show(i.ToString());
    }
}

     For döngüsü ilk bakışta korkutucu görünebilir ama çok kullanışlıdır. for keywordunun yanında parantezler içinde önce bu döngüde kullanılmak üzere bir index sayacı oluşturursunuz. Bu sayaç değişkenin adı hep "i" olur ama bu bir zorunluluk değil tabi. Yazılımcıların böyle gelenekleri vardır. i değişkenini başlangıçta 0 olarak tanımlıyoruz. Noktalı virgülden sonra, koşulumuzu belirtiyoruz; i'nin num'dan küçük olması. Sonraki noktalı virgülden sonra da i değerinin her döngüde 1 arttırılması için "i++" yazıyoruz. Döngü ilk çalıştığında i 0'dır. Sonra sırayla 1,2,3,4 değerlerini alır ve döngü sonlanır.

     4 - Foreach Loop 

     Foreach döngüsü, koleksiyon tiplerinde işimize yarar; mesela diziler, listeler vs.     

private void btnDevam_Click(object sender, EventArgs e)
{
    List<string> isimler = new List<string>();
    isimler.Add("Emre");
    isimler.Add("İlknur");
    isimler.Add("Mustafa");

    foreach (string isim in isimler)
    {
        MessageBox.Show(isim);
    }
}

     List<string> tipinde "isimler" isminde bir değişken tanımladık. Bu liste değişkenine Add() methodunu kullanarak string tipinde elemanlar ekliyoruz. Foreach döngüsü, sırayla listenin elemanlarını veriyor bize. foreach keywordunun yanındaki parantezlerde, bu listenin her bir elemanının hangi veri tipinde olduğunu belirtiyoruz : string. Sonra her bir elemanı için sadece bu döngü içinde geçerli olacak bir ad belirliyoruz : isim. Döngünün döneceği koleksiyon : isimler. isim değişkeni bize sırasıyla "Emre", "İlknur" ve "Mustafa" değerlerini verecek. 

YORUMLAR
Email Adresi *
Görüntülenecek İsim *
Yorum *
Paylaş
  • f