Do yapısı içinde yazdığımız işlemler while ile istediğimiz şart sağlana kadar devam eder.
For döngüsünden farkı şudur: For kullandığımızda şart false üretiyorsa yani sağlanmamışsa, döngü içine hiç girilmez. fakat Do while'da kontol en sonda while () içinde yapıldığından en azından bir kere döngü çalışacaktır.
Basit olarak yapısı şu şekildedir:
01 | do |
02 |
03 | { |
04 |
05 | //Şart sağlanmadığı takdirde, tekrar tekrar çalışacak kodlar; |
06 |
07 | } |
08 |
09 | while (sağlanacak şart); |
10 | { |
11 | // Şart sağlandığında çalışacak kodlar. |
12 | } |
Mesela :
01 | private void button1_Click( object sender, EventArgs e) |
02 | { |
03 | int sayac = 1; // Sayaç değişkeninin değeri ilk aşamada 1 oluyor. |
04 | int sayi = 5; // Sayi değişkenimiz ilk aşamada 5 dedik. |
05 |
06 | do |
07 | { |
08 | int sonuc = sayac * sayi; // sayi ile sayaç değişkenleri çarpılıp sonuc değişkenine atandı |
09 | listBox1.Items.Add(sonuc); // sonuc değişkenin değeri listbox'ımıza yazdıldı. |
10 | sayac++; // İlk etapta 1 olan sayaç bir arttı. |
11 |
12 | } |
13 | while (sayac <= 6); // sayac bu anda 6 dan büyük olmadıgı için do bloguna başa dönüldü. |
14 | { |
15 | MessageBox.Show( "Sayaç 6 oldu ve Do Döngüsünden Çıkıp While'a geçti" ); // Burda sayaç değişkeni 6 olduğu anda While bloguna giriyor. |
16 | } |
17 | } |
Daha sonra sonuç değişkenin değerini ListBox'ımıza yazdırıyoruz. ve sayaç değişkenin değeri her seferinde 1 artıyor ve devam ediyor.
Tabiki ne zamana kadar devam edeceğini while içinde belirttik. Eğer sayac değişkeni 6 ya eşitse yada daha küçükse her seferinde do yapısı içinde blok tekrar çalışacak. Eğer sayaç değişkeni 6 dan büyük olursa. Do bloğundan çıkıp while bloğu içindeki kodlar çalışacaktır.
Çıktısı ise Yanda Görmüş Olduğunuz Resimdeki Gibi Olacaktır.
Şimdi ise yalnızca while kullanalım aslında hiçbir farkı yok. Tek fark ilk örnekte Program şart sağlanmayınca do blogununa dönüyordu ve şartı sonda kontol ediyordu.
While da ise şart en başta belirtiliyor ve şart false olduğu sürece while blogu tekrar , tekrar çalıştırılıyor.
Örneğimizi Verelim :
01 | private void button1_Click( object sender, EventArgs e) |
02 | { |
03 | int sayi = 1; // Sayı değişkenimizin değeri 1 dir. |
04 | while (sayi!=10) // Sayi değişkeni 10'a eşit değilse While Blogu çalışacak. |
05 | { |
06 | MessageBox.Show( "Sayı Değişkeni Şu Anda:" + sayi + "dır" ); //Sayı değişkenin değerini her seferinde göstersin istedim. |
07 | listBox1.Items.Add(sayi); // her seferinde sayı değişkenin değerini Listbox a yazsın. |
08 | sayi++; // ve sayı değişkeninin değeri 1 artar. Yeniden while bloğunun başına döner. |
09 | } |
10 |
11 | MessageBox.Show( "Sayı Değişkeni 10 oldu ve While blogundan Çıkıldı." ); // Sayı değişkeni 10 oldugunda while'dan çıkılır ve burası çalışır. |
12 | } |
While'ın başında şart sağlanmışsa eğer, while bloğundan çıkıp aşağıdan çalışmaya devam ediyor.
Ekran Çıktısı ise aşağıdaki gibi olacaktır: