C# - Döngüler
Yazılımda en önemli konulardan biri de döngülerdir (loop). Yazılan bir kod bloğunun x kere tekrarlama yeteneğidir. C#'da 4 farklı çeşitte döngü tipi vardır. Bunları incelemeye başlayalım..
While Döngüsü
While döngüsü en basit olan döngü türüdür. While döngüsü verdiğiniz koşul doğru olduğu sürece kod bloğunu çalıştırır.
Aşağıdaki While döngüsü örneğini inceleyelim..
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int sayi = 0;
while(sayi < 10)
{
Console.WriteLine(sayi);
sayi = sayi + 1;
}
Console.ReadLine();
}
}
}
Kod çalıştığında "sayi" değişkenimize 0 değeri atanır ve While döngüsüne geldiğinde koşulumuz çalışmaya başlar. "sayi" değişkenimiz 10'dan küçük olduğu sürece While döngüsü içindeki kod bloğu çalışmaya devam edecektir. Kod bloğunda ekrana "sayi" değişkenimiz yazdırılır. Sonrasında değişkenimiz 1 arttırılır. Sonrasında ise tekrar koşula bakılır. Koşulumuz sağlandıkça yani değişkenimiz 10'dan küçük olduğu sürece döngümüz devam eder.
do While Döngüsü
do döngüsü While döngüsünün işleyiş anlamında tersidir. While döngüsünde koşula bakılır ve koşul sağlanırsa kod bloğunun içine girerken, do döngüsünde ilk önce kod bloğunun içine girer sonra koşul sağlanmaya devam ediyorsa döngü devam eder.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int sayi = 0;
do
{
Console.WriteLine(sayi);
sayi = sayi + 1;
} while (sayi < 5);
Console.ReadLine();
}
}
}
for Döngüsü
For döngüsü While ve do döngülerinden biraz daha farklıdır. Başlangıç ve bitiş noktalarını biz belirleriz. Bu sebeble kaç kez kod bloğunun içine gireceğini bildiğinizden daha çok tercih edilir ve kullanışlıdır.
For döngüsü 3 bölümden oluşur. Saymak için bir değişken yaratırız. Koşulu test etmek için bir ifade oluştururuz ve sayacı arttırırız. i++, i değişkenini bir arttırma anlamına gelir. Bazı durumlarda değişkenin bir azaltma şeklinde çalıştırıldığı da olur. O zaman i-- şeklinde kullanırız. Şunu da belirtelim ki bu değişkelnler 1 arttırma veya azaltma şeklinde çalıştırılmak zorunda değildir ama en çok bu şekilde kullanılır.
for döngüsü örneğini aşağıda inceleyelim..
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int sayi = 10;
for(int i = 0; i < sayi; i++)
Console.WriteLine(i);
Console.ReadLine();
}
}
}
Yukardaki örnekte değişken olarak tanımladığımız ve 0 olarak ayarladığımız ilk bölüm, döngü başlamadan önce yalnızca bir kez çalışır. Son 2 parça, döngünün her yinelemesi (koşulun sağlanması) sırasında çalışır. Her seferinde, i sayısi değişkenimizle karşılaştırılır ve değişken değerinden küçükse döngü bir kez daha çalışır. Kod bloğunun içinden çıktığında i bir arttırılır ve tekrar koşula bakılır. Koşul sağlanıyorsa tekrar kod bloğuna girer. Koşul sağlanmıyorsa döngüden çıkılır.
foreach Döngüsü
Bakacağımız son döngü, foreach döngüsüdür. Collection (koleksiyon) türleri üzerinde çalıştırılmaktadır. Örnek olarak "diziler" (array) veya diğer liste (list) türlerini gösterebiliriz.
İlk olarak söylemek gerekir ki array (dizi), Arraylist veya Collection lar ile ilgili bilgi sahibi değilseniz. Bu konuların anlatıldığı derslerimizi incelemenizi öneririz.
Aşağıdaki örnekte foreach döngüsünü inceleyelim..
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ArrayList listem = new ArrayList();
listem.Add("Kedi");
listem.Add("Köpek");
listem.Add("Davşan");
foreach(string listeitem in listem)
Console.WriteLine(listeitem);
Console.ReadLine();
}
}
}
Yukardaki örnekte "listem" isminde bir ArrayList tanımlanmıştır. Sonrasında bu objeye 3 adet item (parça) eklenmiştir. foreach döngümüz ile listenin içindeki her bir item tek tek alınır (name ismindeki değişkene atanır) ve sırasıyla işleme konur. Listedeki son itemda alınıp işleme konduktan sonra döngüden çıkılır.
Collection lar (koleksiyon) ile çalışırken çoğu zaman foreach döngüsünü kullanmanız daha verimlidir. Çünkü bu tür işlemler için diğer döngülerden daha basit yapıdadır.