Döngüler C# Ders5

DÖNGÜ DEYİMLERİ
Döngü deyimleri, programların belirli bölümlerinin defalarca, işlenmesini sağlamak üzere oluşturulmuş bir deyimlerdir. Bunlar For, While, Do…While, Break ve Continue deyimleridir.

FOR
WHILE
DO…WHILE

Visual C# programlarında bir ya da daha fazla sayıda deyimin belirli bir koşul gerçekleşinceye kadar tekrarlanması isteniyorsa “for” deyimi kullanılır. Bu deyim;

For(Başlangıç Değeri;Koşul;Artım)
{
Bildirim;
}
şeklinde kullanılır.
Örnek 1: 1’den 10’a kadar for döngüsü ile elde edilen sayıları listbox’a ekleyen program.


private void Form1_Load(object sender, EventArgs e)
{
int sayac;
for(sayac=1;sayac<=20;sayac++)
{
listBox1.Items.Add(sayac);
}
}

Sayaç ve Artım değerleriyle; döngü sayı belirlenebilir. Döngü istenildiğinde “break” ile sonlandırılabilir.

Örnek 2: 2’den 20’e kadar for döngüsü ile elde edilen sayıları listbox’a ekleyen, sayaç 10’a geldiğinde break ile for döngüsünden çıkılan program.

private void Form1_Load(object sender, EventArgs e)
{
int sayac;
for(sayac=1;sayac<=20;sayac++)
{
listBox1.Items.Add(sayac);
if (sayac >= 10)
{
break;
}
}
}

Örnek3:Başlangıç ve bitiş değerini kullanıcıdan isteyen ve iki değerarasındaki sayıları toplayan program.

private void button1_Click(object sender, EventArgs e)
{
int basla;
int bitir;
int sayac=0;
int toplam=0;
basla = Convert.ToInt32(textBox1.Text);
bitir = Convert.ToInt32(textBox2.Text);
for(sayac=basla;sayac<=bitir;sayac++)
{
toplam = toplam + sayac;
}
MessageBox.Show(toplam.ToString());
}

Yukarıdaki kod satırları; iki değer arasındaki sayıları toplayıp, ekrana mesajbox dialog kutusu ile bildirmektedir.

İç İçe For Döngüsü

Birden fazla döngünün iç içe kullanılmasıdır.  Dıştaki döngünün her adımında içteki döngü sonuna kadar dönecektir.

Örnek olarak dıştaki döngü 1 den 3 e kadar olsun. içteki döngü 1 den 5 e kadar olsun. Dıştaki döngü 1. adımın dayken içteki döngü 5 defa döner.

Daha sonra dıştaki döngü 2 olur. İçteki  döngü 5 kez daha döner.

Dıştaki döngü son adımı 3 olur ve yine içteki döngü 5 kez döner. Toplamda 15 kez dönmüş olur.

Bir örnek daha verecek olursak. 1 yılda 52 hafta var. ve her haftada haftanın 7 günü var. Burada tekrarlanan  2 durum ele alırsak. 1.durum haftalar ve her haftanın içerisinde günler var.
Bu durumda 1.döngü 1 den 52 ye kadar haftalar.
2.döngü 1 den 7 ye kadar olan günler.

Döngüyü kod olarak yazarsak


for(i=1;  i<=52; i++)

for(j=1;  j<=7; j++)

{

günler;

}

123-123 buton içeriği


int i, j;

for(i=1; i<=3; i++)

for (j =1; j <=3; j++)
 {
 listBox1.Items.Add(i.ToString());
 }

111-222-333 buton içeriği


int i, j;

for (i = 1; i <= 3; i++)

for (j = 1; j <= 3; j++)
 {
 listBox2.Items.Add(j.ToString());
 }

WHILE…
Belirli bir koşulun gerçekleşmesi sonucunda bazı deyimleri söz konusu ise While.. döngülerinden yararlanılır. Koşul olumlu olduğu sürece çevrim yinelenir. İki veya daha fazla koşul mantıksal operatörler ile birleştirilir.

Bu deyim;
While( koşul )
{
Deyimler;
};
biçimde tanımlanmaktadır. Koşulun gerçekleşmemesi durumunda ise döngü terk edilir.

DO…WHILE
While döngüsü gibidir. Tek fark, koşulun döngü sonunda sınanmasıdır. Yani, koşul sınanmadan çevrime girilir ve döngü kümesi en az bir kez yürütülür.

Kullanılışı;

Do
{
Deyimler;
}While(Koşul);
şu şekildedir. Döngü istenildiğinde “Break” ile sonlandırılabilir.

Örnek 4: Kullanıcının girdiği değere göre faktöriyel hesaplayan program.


private void button1_Click(object sender, EventArgs e)
{
int sayac, sayisal_deger, Faktoriyel;
string deger = Microsoft.VisualBasic.Interaction.InputBox
("Faktöriyel Giriniz","Titttlee", "", 100, 100);
sayac = 1;
Faktoriyel = 1;
sayisal_deger = Convert.ToInt32(deger);
do
{
sayac = sayac + 1;
Faktoriyel = Faktoriyel * sayac;
} while (sayac < sayisal_deger);
MessageBox.Show("FAKTÖRİYEL: " + Faktoriyel.ToString());
}

Örnek 5: TextBox’a girilen 10 tabanındaki değeri 2’lik tabana çeviren program.


private void button1_Click_1(object sender, EventArgs e)
{
int Kalan, Sonuc;
int i = 0;
Sonuc = Convert.ToInt32(textBox1.Text);
string[] dizi = new string[40];
while (Sonuc >= 2)
{
Kalan = Sonuc % 2;
Sonuc = Sonuc / 2;
dizi[i] = Kalan.ToString();
i = i + 1;
}
textBox1.Text = Sonuc.ToString();
while (i >= 0)
{
textBox1.Text =textBox1.Text+ dizi[i];
i--;
}
}

Benzer Yazılar

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>