Jump to content

C# Döngüler


Falcon

Önerilen İletiler

  • Yönetici

Nedir Bu Döngüler ?
Birden fazla tekrarlanması gereken işlem/işlemleri gerçekleştirmek için döngü adı verilen yapılar kullanılmaktadır. Döngüler yardımıyla hem tekrarlanması gereken kod bloğunun yazımı kolaylaşır hem de kod okuma işlemi daha basit bir hale getirilmiş olur.
C# ortamında 4 farklı döngü kullanılmaktadır. Aşağıda bu döngüler ve değineceğimiz konu başlıkları bulunmaktadır.

FOR
FOREACH
WHILE
DO-WHILE
BREAK / CONTINUE
INFINITE LOOP
FOR Döngüsü

For Döngüsü tekrarlanması istenilen kod satırının ya da kod bloğunun, belirtilen sayı kadar, belirlenen şart sağlanana kadar ve istenen artış ya da azalış sayısı kadar tekrarlanmasını sağlayan döngü yapısıdır.

Şimdi Syntax’ ini inceleyelim…

 

Gizli İçerik


for parantezinin içine yazdığımız ilk girdi döngü başladığında bir kez çalışır ve döngü değişkenini ilk değeri atanarak tanımlar. İkinci girdimiz koşulumuzdur ve döngü değişkenimiz ile bir koşul oluştururuz. İşte bu koşul sağlandığı sürece döngü devam eder. Üçüncü girdimiz ise ihtiyaca göre döngü değişkenini arttırdığımız veya azalttığımız yerdir.

For Döngüsü şöyle çalışır…

Döngü değişkeni tanımlanır ve ilk ataması yapılır

Koşul test edilir ve koşul doğru ise for-kod bloğunun içine girilir.

Komutlar çalıştırılır.

Komut çalıştıktan sonra döngü değişkenini değiştirdiğimiz alana gelinir ve amaca yönelik arttırılır veya azaltılır.

Tekrar koşul sorgulanır. Eğer koşul doğru ise tekrar komutlar çalıştırılır.

Koşul yanlış ise döngü biter.

Şimdi hem for döngüsünü nasıl kullanacağımızı hemde ne için kullanacağımızı anlayabileceğimiz bir örnek yapalım..

Amacımız konsola 1'den 100'e kadar olan tam sayıları yazdırmak olsun…

Console.WriteLine("1");
Console.WriteLine("2");
Console.WriteLine("3");
Console.WriteLine("4");
Console.WriteLine("99");
Console.WriteLine("100");


Eğer döngüleri kullanmadan bu işi yapmak isteseydik yukarıda ki gibi tek tek yazmak zorunda kalırız.
Şimdi bunu for döngüsü ile yapalım…

Gizli İçerik


işte bu şekilde 100 satır kod yazmak yerine bir kaç satırla bu işi halledebildik. For döngüsünün çalışma prensibini inceleyecek olursak yukarıdaki kodumuzun nasıl 1' den 100' e kadar sayıları konsola yazdırdığını anlamamız çok kolay.

Şimdi farklı bir örnek olsun diye 1 ile 100 arasında ki (1 ile 100 dahil) tek sayıları yazdıran bir for döngüsü kuralım.

Gizli İçerik


gördüğünüz üzere bu kodumuzda döngü değişkenimiz 1 den başlayıp her seferinde 2 şer artacak bu durumda çıktımız :

/*
1
3
5
.
.
.
97
99
*/
şeklinde olacaktır.

WHILE Döngüsü

While Döngüsü, belirlenen komut bloğunun verilen şart sağlandığı sürece dönmesini sağlayan döngü modelidir. For döngüsünden farkı sadece şartı kontrol etmesidir.

Şimdi Syntax’ ını inceleyelim…

Gizli İçerik


While Döngüsü şöyle çalışır…

Bir While dögüsü başlar başlamaz önce koşulu kontrol eder

Koşul doğru ise while-kod bloğunun içine girer ve komutları çalıştırır.

Döngü içinde ki komutlar bittiğinde tekrar koşul sorgulanır.

Koşul doğru ise döngü devam eder.

Koşul yanlış ise döngü biter.

Şimdi for döngüsü için yaptığımız örneği while döngüsüne göre uyarlayalım.

Gizli İçerik


While döngüsünün çalışma prensibini buraya uyguladığımızda amacımıza ulaşıldığı kolayca görülür. Burada farketmemiz gereken bir başka durum ise while döngü yapısının for döngü yapısına benzemesidir. While döngüsünde döngü değişkeni gibi davranan int i değişkenini dışarıda tanımlayıp döngü içinde arttırıyoruz. Böylece for döngüsüyle aynı performansı yakalıyoruz.

FOREACH Döngüsü

For döngüsü kadar olmasa da kullanımı oldukça yaygındır. Foreach döngüsü koleksiyonlar üzerinde kullanılır. Koleksiyon bir dizi veya bir liste olabilir. dizi/liste deki her eleman için çalıştırılır.

Şimdi Syntax’ ını inceleyelim…

Gizli İçerik


Foreach Döngüsü şöyle çalışır…

İlk önce koleksiyona bakılır boş değilse koleksiyonun ilk elemanını var_name değişkeni tutar.

daha sonra ister bu elemanı kullanarak ister kullanmayarak istenilen komutlar gerçekleşir.

daha sonra varsa koleksiyonun ikinci elemanını var_name değişkeni tutar ve yine komutlar çalıştırılır.

koleksiyonun elemanları bitene kadar döngü devam eder.

Şimdi hem bu döngüyü anlamak için hemde diğer döngüler arasında ki farkı anlamak için bir örnek yapalım.

Amacımız tanımlı olan bir tam sayı dizisini konsola bastırmak olsun ve bunu ilk önce for döngüsüyle daha sonra foreach döngüsüyle yapalım…

Gizli İçerik


Gördüğünüz gibi elimizde bir koleksiyon varsa ve bu koleksiyonların elemanlarını tarayacak şekilde bir döngü yazacaksak for döngüsü yerine foreach daha kullanışlı ve daha okunaklıdır.

DO-WHILE Döngüsü

Bu döngü while döngüsüne benzer bir döngüdür. Aralarındaki temel fark while döngüsünde koşulu başta kontrol ederken do-while döngüsünde koşul sonda kontrol edilir. Dolayısıyla do-while döngüsü en az bir kere koşuldan bağımsız çalıştırılır.

Şimdi Syntax’ ını inceleyelim…

do

{ // statements
}while (condition)


Do-While döngüsü şöyle çalışır…

Döngü başlar başlamaz içindeki komutlar çalışır.

While parantezinin içindeki koşul sorgulanır.

Eğer koşul doğruysa aynı komutlar tekrar çalıştırılır.

Eğer koşul yanlışsa döngüden çıkılır.

Şimdi do-while döngüsünü anlamak ve diğer döngülerle kıyaslamak için bir örnek yapalım…

Amacımız do-while ve while arasındaki farkı görebileceğimiz bir örnek yapmak…

Gizli İçerik


Gördüğünüz üzere do-while ile oluşturduğumuz yapıda do-while koşulu sağlanmadığı halde içerisinde ki kod bloğu bir kez çalışır ancak while için aynı şey geçerli değil.

BREAK / CONTINUE Deyimleri
Döngülerin belirli bir yerinde döngüyü sonlandırmak (kırmak/çıkmak) veya belirli bir yerin altında ki komutların o seferlik atlanması istenebilir. İşte bu istekleri gerçekleştirmek için Break / Continue deyimlerini kullanırız. Bu deyimler(ifadeler) Jump Statements olarak geçmektedir hatta bunlara ek olarak Goto, Return, Throw deyimleri de vardır.


Break deyimi döngünün belli bir yerinde döngüden çıkmak istenilince kullanılır. Break deyimi görüldüğünde deyimin altındaki komutlar es geçilir ve direkt döngü dışından devam edilir.


Continue deyimi döngünün belirli bir noktasında deyimin altında ki komutları atlamak için kullanılır. Bu deyimin farkı komutlar atlanır ancak döngüden çıkılmaz ve kaldığı yerden devam eder.

Bu deyimler her döngü içinde kullanılabilir.

Şimdi bu iki deyimi bir örnekle inceleyelim…

Gizli İçerik


Bu for döngüsünün çıktısı aşağıdaki gibidir.

1
2
3
4
gördüğünüz gibi i = 5 olduğunda break;komutu çalıştı ve döngüden çıkıldı.

Gizli İçerik


Şimdi break; yerine continue; deyimini kullandık bu döngünün çıktısı aşağıdaki gibidir.

1
2
3
4
6
7
8
9
10
Gördüğünüz üzere 5 sayısı bastırılamadı çünkü i = 5 olduğunda continue; komutu çalıştı ve altında ki Console.WriteLine(i); komutu atlandı.

INFINITE Loop (Sonsuz Döngü)
Bu döngüler test ettiğimiz koşulun hiçbir zaman yanlış olmadığı döngüler bu nedenle dışarıdan başka bir kuvvet uygulanmadıkça (break komutu gibi) durmazlar.
Ne demek koşulun yanlış olmaması ?
Eğer bool ifade alan bir yere (2 == 2), true gibi ifadeler yazarsanız veya izin veriyorsa boş bırakırsanız bu bool ifade asla false olmaz. Bu nedenle bu taktiği döngülere kullanırsak döngüler müdahale edilmedikçe durmaz.

Şimdi gördüğümüz bazı döngüler için infinite döngü yazalım.

Gizli İçerik


Bu döngülerin çıktıları aynıdır. O da aşağıdaki gibidir…

Bu bir sonsuz döngüdür!
Bu bir sonsuz döngüdür!
Bu bir sonsuz döngüdür!
Bu bir sonsuz döngüdür!
Bu bir sonsuz döngüdür!
Bu bir sonsuz döngüdür!
Bu bir sonsuz döngüdür!
.
.
.

 

Yorum bağlantısı
Sitelerde Paylaş

Sohbete katıl

Şimdi mesajını gönderebilir ve daha sonra kayıt olabilirsin. Bir hesabın varsa, hesabınla göndermek için şimdi oturum aç.

Misafir
Bu konuyu yanıtla

×   Yapıştırdığınız içerik biçimlendirme içeriyor.   Biçimlendirmeyi Temizle

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Önceki içeriğiniz geri yüklendi.   Editör içeriğini temizle

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Yeni Oluştur...

Önemli Bilgilendirme

KartalSoftware Forum kurallarını okudum ve kabul ettim.