C#’da while ve do-while döngüleri


Sınavlarım yüzünden epeydir yazamıyordum. Bu yazımda while ve do-while döngüsünden biraz bahsedeceğim. Örneklerle açıklamaya çalışalım.

while döngüsü

while döngüsünde eğer yazdığımız koşul sağlanıyorsa dönmeye devam eder. Ne zaman ki koşul false(yanlış) değer döndürürse o zaman döngü sonlanır.

şablonu şu şekildedir;
while(koşul)
{
yapılacak işler;
}

Hemen bir örnekle açıklayalım;
Yeni bir forma bir tane ListBox ve bir tane de button ekleyelim.
Kodlarımızı butonun Click olayına yazıyoruz:

private void button1_Click(object sender, EventArgs e)
{
int sayac = 0;
while (sayac < 100)
{
listBox1.Items.Add(sayac.ToString());

sayac++;
}
}

Burada while’a koşul olarak yazdığımız kodda sayac 100 olduğunda döngüden çık dedik. Ayrıca 100 oluncaya kadar her bir adımda sayac’ın değerini String’e çevirerek ListBox’ın itemlarina ekle dedik.Ve sonsuz döngü yapmamak için sayaç’ın değerini her adımda sayacın değerini bir arttırıyoruz.

Hemen bir örnekle de sonsuz döngüden bahsedelim aslında anlatmak istediğim çok şe var fakat sizleri sıkmamak adına sade bir yazı yazmaya çalışıyorum eğer herhangi bir problem yada sorun yaşarsanız bana ulaşarak sorabilirsiniz, elimden geldiğince yardım olmaya çalışırım. Lafı uzatmadan örneğimize geçelim;
int i = 1;
while(1==i)
{
}

Burada i sürekli 1′e eşit olacağından döngüden çıkamaz ve sonsuz bir döngü oluşur. Eğer Visual Studio ortamında çalışıyorsanız Shift+F5 ile yada daha önce bahsettiğim play işaretinin yanında ki Stop işareti ile durdurabilirsiniz. Aksi halde programınız yanıt vermez :D .

do while döngüsü

Bu döngünün diğerlerinden farkı döngüdeki koşul en son kontrol edilir. Yani önce döngü işlemleri yapılır daha sonra kontrol edilir duruma göre çıkar yada devam eder. Bu da bize bu döngünün en az bir kere döneceğini gösterir.

Şablonu şu şekildedir;
do
{
yapılacak işler;
}
while(koşul);

Basit bir örnekle açıklamak gerekirse.
int toplam=0;
int sayi = 0;
do
{
sayi++;
toplam += sayi;
ListBox1.Items.Add(toplam);
}
while(sayi < 100);

Ileride yapacağım örneklerin içerisinde de kullanadığım zaman daha anlaşılır olacaktır.

About these ads

C#’da while ve do-while döngüleri” üzerinde 13 yorum

  1. while(1==2)
    {
    }
    kodu için “…döngüden çıkmaz ve sonsuz bir döngü oluşur.” demişsiniz.
    Aslında bu kodda dediğiniz gibi bilgisayarın bildiği matematik kurallarına göre 1, 2′ye eşit olamayacağı için döngüye hiç girmemesi gerekmiyor mu?

    • Evet, haklısın dalgınlığıma gelmiş. Tabii ki de içeriye girmesi için eşitliği sağlaması gerekiyor. Ancak eşitlik bozulmadığı sürece döngü kırılamaz yani. Sonsuz döngü o şekilde oluşur. Teşekkürler, düzeltelim…

  2. Arkadaşlar Bir Sorum Var yapabilecek varmı ödev varda ?

    Kullanıcıdan önceden belirlenmiş bir PİN kodu girmesini isteyiniz. 3 defa PİN numarasını hatalı girerse “Uygulamanız bloke olmuştur.” mesajı, kullanıcı 3 deneme hakkı içinde doğru olarak PİN numarasını girerse “Hoşgeldiniz” mesajı veren programın while ile yazınız.

    Soru Bu arkadaslar.

    iletişim: ultrasamet986@hotmail.com

  3. int hak = 3;
    int pin, kod;
    kod = 4402;
    while (hak > 0)
    {
    Console.Write(“\nPin kodunu giriniz: “);
    pin = Convert.ToInt32(Console.ReadLine());
    hak = hak – 1;
    if (pin == kod)
    {
    Console.WriteLine(“HOŞ GELDİNİZ…”);
    break;
    }
    else
    {
    if (hak == 0 && pin != kod)
    Console.WriteLine(“Uygulamanız bloke olmuştur.”);
    else
    Console.WriteLine(“tekrar deneyiniz”);
    }
    Console.WriteLine(“Kalan hak:{0}”, hak);

    }

  4. abilerim ablalarım, ,küçük bir program yaptım, programa sordurdum “tekarar denemek ister misiniz (E/H) :” diye. do-whille döngü oluşturmak istedim, while kısmı:

    while (cevap == “H” || cevap==”h” )

    hata veriyor, diyor ki: ‘char’ veya ‘string’ için “||” operatörü kullanılamaz. aynını “==” için de diyor.

    bu arada klavyeden girişi şöyle yaptım:

    cevap = Console.ReadKey().KeyChar;

    bi el atın yav :)

  5. Cevap değişkeni Char tipinde fakat “H” string tipinde olduğundan kaynaklanıyor sanırım. Convert etmen gerekiyor…

  6. Arkadaşlar bir program yapıyorum daha doğrusu bitirme projesi. Herneyse
    TextReader ve TextWriter kütüphanesiyle çalışıyoruz ve benim bir deneme.txt dosyasının içini tamamen sonuna kadar tarayıp her satırı bir listbox a yazdırmam lazım yardımcı olursanız çok mutlu edersiniz beni. Şimdiden teşekkür ederim

  7. Beyler Ben birşey Yapmak İstiyorum Yardımcı olurmusunuz
    mesela şimdi Consol açıldıgında ekranda para banknotları gireceğimiz bi yer olucak
    sonra çekeceğimiz para miktarını giricez ve bize kaç adet 5tl veya 10 tl verildiğini yazıcak. mesela 5tl bitiğinde 5 tl bitti diyecek yardımcı olrmsunuz???

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logo

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter picture

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook photo

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ photo

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s