Aylık arşivler: Mart 2012

Foreach Döngüsü

Foreach döngüsü bir koleksiyon veya bir dizi değişkenin elemanlarını sırayla okumak için kullanılır. Foreach döngüsünün kaç defa döneceğini dizi yada koleksiyonun eleman sayısı belirler.

Foreach Döngüsünü Kullanımı

foreach(eleman_tipi eleman_adi in koleksiyon)
{

Döngü komutları…

}

Örnek Uygulama;

textBox’a girilen string bir ifadenin elemanlarını (karakterlerini) alt alta yazan program.

[ipucu:string değişkenler dizi olmasa dahi karakter dizisi özelliği gösteren bir koleksiyon gibi çalışır.]


foreach (char harf in textBox1.Text)
{

label1.Text += harf.ToString()+"n";

}

Örnek Uygulama2;

textBox’a girilen string ifadeyi tersten yazan program.


foreach (char harf in textBox1.Text)
{

label1.Text = harf.ToString() + label1.Text;

}

While ve do-while Döngüsü

While Döngüsü

While döngüsü belirlenen şarta bağlı olarak while bloğu içindeki satırların bir döngü halinde tekrar tekrar işletilmesini sağlar. Başka bir ifadeyle döngüye giriş ve döngünün devam etmesi şarta bağlıdır.

Döngü içerisinde şartı etkileyen bir komut olmalıdır; aksi halde sonsuz döngü ihtimali ortaya çıkar.

While Kullanımı

while(şart)
{

Döngü komutları…

}
Aşağıda basit bir for döngüsü ve while uyarlaması verilmiştir.


private void button1_Click(object sender, EventArgs e)
{

for(int i = 1; i <= 10; i++)
{
label1.Text += i + " ";
}

}

Bu ifadenin while ile oluşturulmuş hali şu şekilde olacaktır.


private void button1_Click(object sender, EventArgs e)
{
int i = 1;

while( i <= 10)
{
label1.Text += i + " ";

i++;
}

}

Do-while Döngüsü

While döngüsünde şart döngünün başında kontrol edildiği için eğer şart sağlanmaz ise program döngüye girmeden çıkar ve diğer komutlar işletilir. Do-while’da ise şart döngünün sonunda kontrol edildiği için do bloğundaki komutlar en az bir defa çalıştırılır. Yani döngüye giriş değil sadece döngüde kalma şarta bağlıdır. Eğer şartı oluşturan komut aynı zamanda döngüde tekrar ettirilecek komut ise bu yapı kullanılır.

Do-while döngüsünde de while döngüsünde olduğu gibi döngü içerisinde şartı etkileyen bir komut olmalıdır; aksi halde sonsuz döngü ihtimali ortaya çıkar.

do
{

Döngü komutları…

}while(şart);

Örnek Uygulama: button1’e basıldığında sayı çifleri üretip satır satır yazan metot aynı sayı çifti ürettiğinde yazıp sonlanır;


private void button1_Click(object sender, EventArgs e)
{

Random rst = new Random();

int sayi1;

int sayi2;

do
{

sayi1 = rst.Next(1,6);

sayi2 = rst.Next(1,6);

label1.Text += sayi1.ToString() + " - " + sayi2.ToString()+"n";

} while (sayi1!=sayi2);

}

For Döngüsü

Belirli sayıda tekrar edilecek komut blokları veya her çevirimde kullanılacak bir sayaç değişkenine ihtiyaç duyulduğunda yaygın olarak for döngüsü kullanılır.

For döngüsü 3 parametre ile tanımlanır. Bunlar birbirlerinden metotlardaki gibi (,) ile değil (;) ile ayrılır:

  1. İlk parametresi sayaç değişkeni tanımlamasıdır. For kalıbı içinde tanımlanan sayaç değişkeni Local’dir; yani sadece for bloğu içinde çalıştırılır. Sayacı for dışında tanımladığımız zaman Global bir değişken olur ve for bloğu dışında da kullanılabilir.
  2. For döngüsünün ikinci parametresinde şart tanımlaması yapılır. Şart ifadesi true yada false değer almalıdır, döngünün her çevriminin başında şart kontrolü yapılarak değeri true ise çevrim başlatılır (çevrim: döngü komut bloğunun her bir tekrarıdır).
  3. Son parametrede ise sayaç işlemidir. Bu işlem her çevrimin sonunda gerçekleştirilir. Sayaç işlemi sayacı değiştiren her türlü matematiksel işlem olabilir böylece sayacı istediğimiz değerde arttırıp azaltabiliriz.

[ipucu: Visual Studio ile for yazdıktan sonra arka arkaya tab tuşuna bastığımızda visual studio for döngüsünün kalıbını bize otomatik olarak oluşturur.]

For Döngüsünün Kalıbı


for (int i = 0; i < length; i++)
{

//koşul true olduğu sürece yapılacak işlemler

}

 

Örnek Uygulama;

Form yüklendiğinde Label nesnesine 0dan 9a kadar sayıları alt alta for döngüsünü kullanarak yazdıralım.


label1.Text="";

for (int i = 0; i <= 9; i++)
{

label1.Text += i.ToString()+"\n";

}

Örnek uygulama;

label’a textBox’dan girilen metnin karakterlerini alt alta for döngüsü kullanarak yazdıralım.


for (int i = 0; i < textBox1.Text.Length; i++)
{

label1.Text += textBox1.Text.Trim().Substring(i,1)+"\n";

}