8 - C# Döngüler

MerryGo

Yeni üye
19 May 2021
48
15
Döngüler
csharp-1200x600.png
Döngüler birden fazla tekrarlanması gereken olayların gerçekleşmesinde yardımcı olan yapılardır. Döngülerle yapacağımız olayları daha hızlı, daha okunaklı ve hemde daha az kod satırı ile yazmamıza olanak sağlar. Basit bir örnek olarak ekrana 1000 tane "merhaba" yazısı yazdırmaya kalkarsak bu işlem bizi çok zorlar ama bu işlemi döngüler yardımı ile yapmaya kalkarsak çok daha hızlı ve kolay şekilde yapabiliriz. C# da 4 farklı döngü türü mevcuttur. Bunlar for, foreach, while, do while'dır.

For Döngüsü
Tekrarlanması istenen kod bloğunun, belirtilen şart sağlandığı sürece ve belirtilen artış veya azalış sayısı kadar tekrarlanmasını sağlayan yapıdır. Programlamada en çok kullanılan döngü for diyebiliriz. For döngüsü aşağıdaki gibi kullanılır:
Kod:
For (sayaç değişkeni; şart; artış veya azalış değişkeni)
{
    Yapılacak işlemler;
{

Döngü ilk çalıştığında sayaç değişkeni çalışır ve daha sonra şart'a bakılır. Şart sağlanıyorsa {} içindeki kod çalışır ve son olarak artış yada azalış değişleni işleme konulur ve döngü tekrarlanır.
Örnek olarak 100 den geriye doğru çift sayıları ekrana yazan bir program yazalım.

Örnek kod:
C#:
for (int i = 100; i >= 0; i -= 2)
{
     Console.WriteLine(i);
}
Console.ReadKey();

Çıktı:
Kod:
100
98
96
.
.
.
0

Yukarıda int i = 100 ile bir başlangıç değeri tanımladık ve şart olarak i >= 0 kodunu yazdık. 100 olan i 0 dan büyük veya eşit olduğu sürece yukarıdaki kod bloğu çalışacaktır. Son olarak i -= 2 kodu ile i değişkenini her döngü döndüğünde 2 azaltık.

Şimdi biraz daha zor bir şey yapalım, ilk okulda öğrendiğimiz çarpım taplosunu konsol ekranına yazalım.

Kod:
C#:
int satır = 0;
int sütün = 0;
for (int i = 1; i <= 10; i++)
{
     for (int j = 1; j <= 10; j++)
     {
         Console.SetCursorPosition(sütün, satır + j);
         // imlecin ekrandaki konumunu belirledik
         Console.WriteLine("{0} X {1} = {2}", i, j, (i * j));
     }
     sütün += 15;
     if (i == 5)
     {
         sütün = 0;
         satır = 15;
     }
}
Console.ReadKey();

Çıktı:
Kod:
1 X 1 = 1      2 X 1 = 2      3 X 1 = 3      4 X 1 = 4      5 X 1 = 5
1 X 2 = 2      2 X 2 = 4      3 X 2 = 6      4 X 2 = 8      5 X 2 = 10
1 X 3 = 3      2 X 3 = 6      3 X 3 = 9      4 X 3 = 12     5 X 3 = 15
1 X 4 = 4      2 X 4 = 8      3 X 4 = 12     4 X 4 = 16     5 X 4 = 20
1 X 5 = 5      2 X 5 = 10     3 X 5 = 15     4 X 5 = 20     5 X 5 = 25
1 X 6 = 6      2 X 6 = 12     3 X 6 = 18     4 X 6 = 24     5 X 6 = 30
1 X 7 = 7      2 X 7 = 14     3 X 7 = 21     4 X 7 = 28     5 X 7 = 35
1 X 8 = 8      2 X 8 = 16     3 X 8 = 24     4 X 8 = 32     5 X 8 = 40
1 X 9 = 9      2 X 9 = 18     3 X 9 = 27     4 X 9 = 36     5 X 9 = 45
1 X 10 = 10    2 X 10 = 20    3 X 10 = 30    4 X 10 = 40    5 X 10 = 50





6 X 1 = 6      7 X 1 = 7      8 X 1 = 8      9 X 1 = 9      10 X 1 = 10
6 X 2 = 12     7 X 2 = 14     8 X 2 = 16     9 X 2 = 18     10 X 2 = 20
6 X 3 = 18     7 X 3 = 21     8 X 3 = 24     9 X 3 = 27     10 X 3 = 30
6 X 4 = 24     7 X 4 = 28     8 X 4 = 32     9 X 4 = 36     10 X 4 = 40
6 X 5 = 30     7 X 5 = 35     8 X 5 = 40     9 X 5 = 45     10 X 5 = 50
6 X 6 = 36     7 X 6 = 42     8 X 6 = 48     9 X 6 = 54     10 X 6 = 60
6 X 7 = 42     7 X 7 = 49     8 X 7 = 56     9 X 7 = 63     10 X 7 = 70
6 X 8 = 48     7 X 8 = 56     8 X 8 = 64     9 X 8 = 72     10 X 8 = 80
6 X 9 = 54     7 X 9 = 63     8 X 9 = 72     9 X 9 = 81     10 X 9 = 90
6 X 10 = 60    7 X 10 = 70    8 X 10 = 80    9 X 10 = 90    10 X 10 = 100

Yukarıda "Console.SetCursorPosition(sütün, satır + j);" kodu ile ekranda yazacağımız yazının konumunu belirledik. İlk for döngüsündeki i ilk çarpanı temsil eder ve j ise ikinci çarpanı temsil eder. İlk başlarda bu iç içe for döngüsü zor görünebilir ama zamanla uğraştıkça daha kolay gelmeye başlıyor.

Şimdide kullanıcıdan aldığımız bir stringi consol ekranına dik eşkenar dörtgen şeklinde yazdıran bir program yazalım.

Kod:
C#:
int satır = 0;
int sütün = 50;
string kelime;
Console.Write("Bir kelime giriniz:");
kelime = Console.ReadLine();
Console.Clear();
for (int i = 0; i <= 9; i++)
{
     Console.SetCursorPosition(sütün - i, satır + i);
     Console.WriteLine(kelime);
     Console.SetCursorPosition(sütün + i, satır + i);
     Console.WriteLine(kelime);
     if (i == 9)
     {
         for (int j = 0; j < 10; j++)
         {
             Console.SetCursorPosition(sütün - (i - j), satır + (i + j));
             Console.WriteLine(kelime);
             Console.SetCursorPosition(sütün + (i - j), satır + (i + j));
             Console.WriteLine(kelime);
         }
     }
}
Console.ReadKey();

Çıktı:
C#:
                                                  TÜRK HACK TEAM
                                                 TÜTÜRK HACK TEAM
                                                TÜRKTÜRK HACK TEAM
                                               TÜRK HTÜRK HACK TEAM
                                              TÜRK HACTÜRK HACK TEAM
                                             TÜRK HACK TÜRK HACK TEAM
                                            TÜRK HACK TETÜRK HACK TEAM
                                           TÜRK HACK TEAMTÜRK HACK TEAM
                                          TÜRK HACK TEAM  TÜRK HACK TEAM
                                         TÜRK HACK TEAM    TÜRK HACK TEAM
                                          TÜRK HACK TEAM  TÜRK HACK TEAM
                                           TÜRK HACK TEAMTÜRK HACK TEAM
                                            TÜRK HACK TETÜRK HACK TEAM
                                             TÜRK HACK TÜRK HACK TEAM
                                              TÜRK HACTÜRK HACK TEAM
                                               TÜRK HTÜRK HACK TEAM
                                                TÜRKTÜRK HACK TEAM
                                                 TÜTÜRK HACK TEAM
                                                  TÜRK HACK TEAM

Son olarak kullanıcıdan alınan bir sayının faktoriyelini hesaplayan bir program yazalım.

Kod:
C#:
int s;
int fak = 1;
Console.WriteLine("Bir sayı giriniz:");
s = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= s; i++)
{
     fak *= i;
}
Console.WriteLine("Sonuç :" + fak);
Console.ReadKey();

Foreach Döngüsü


Foreach döngüsü diziler veya koleksiyonlar üzerinde çalışacağımız zaman oldukça işimize yarar. Eleman sayısının bilinmediği durumlarda çok kullanışlıdır. Foreach dizinin veya koleksiyonun içindeki verileri tek tek döndürmemize olanak sağlar.

Foreach aşağıdaki gibi tanımlanır:

Kod:
foreach (DeğişkenTipi Değişkenİsmi in ListeYadaKoleksiyonİsmi)
{
    Çalışacak kod;
}

Foreach ile yaptığımız işlemleri for döngüsü ile de yapabiliriz ama foreach daha pratik ve hızlıdır. Örnek olarak for döngüsü ile bir kod yazalım:

Kod:
C#:
string[] isim = { "Ali", "Veli", "Ahmet", "Mehmet", "Cemal", "Kemal" };
for (int i = 0; i < isim.Length; i++)
{
     Console.WriteLine(isim[i]);
}

Yukarıda "isim.Length" ile isim dizisinin eleman sayısını öğrendik ve "Console.WriteLine(isim);" ile hepsini tek tek ekrana yazdırdık. Dizinin eleman sayısını "isim.Coun()" ile de öğrenebiliriz.

Şimdi aynı işlemi Foreach Döngüsü ile yapalım:

Kod:
C#:
string[] isim = { "Ali", "Veli", "Ahmet", "Mehmet", "Cemal", "Kemal" };
foreach (var i in isim)
{
 Console.WriteLine(i);
}

Yukarıda var i ile bir i değişkeni oluşturduk ve foreach döngüsü ile isim dizisinin elemanlarını sırayla i değişkenine atadık ve ekrana yazdırdık.
Çıktı:
Kod:
Ali
Veli
Ahmet
Mehmet
Cemal
Kemal

While döngüsü

Kısaca while döngüsü şart sağlandığı(yani True) sürece bloğun içindeki kodu döngü şeklinde çalıştıran bir yapıya sahiptir. While döngüsünde tekrar sayıları belli değildir, daha doğrusu kaç kez tekrarlanacağını belirtmek zorunlu değildir, tekrar sayısını daha sonradan biz belirleyebiliriz.

While döngüsü aşağıdaki gibi kullanılır:

Kod:
While(şart)
{
    Yapılacak işlem;
}

Şart sağlandığı sürece kod bloğunun içindeki kod çalışmaya devam eder.
Örnek olarak while döngüsü ile klavyeden girilen bir sayının basamaklarının toplamını yazan bir program yazalım.

Kod:
C#:
int sayi, toplam = 0;
Console.Write("Bir sayi giriniz:");
sayi = Int32.Parse(Console.ReadLine());
while (sayi != 0)
{
     toplam += sayi % 10;
     sayi /= 10;
}
Console.WriteLine($"Basamakların toplamı :{toplam}");
Console.ReadKey()

toplam += sayi % 10; satırı ile sayının son basamağını toplam değişkenine ekledik ve sayi /= 10; yardımı ile sayımızın son basamağını sildik. Böyle devam ederek sayı değişkenimiz son durumda 0'a eşit olacak ve sayi != 0 (sayi eşit değildir 0'a) şartımız artık sağlanmadığından döngü son bulacaktır.

Şimdi daha kolay bir örnek yapalım 1'den 100'e kadar olan sayıları toplayan bir program yazalım.

Kod:
C#:
int sayac = 1;
int toplam = 0;
while (sayac <= 100)
{
     toplam += sayac;
     sayac++;
}
Console.WriteLine($"toplam :{toplam}");

Çıktı:
Kod:
5050

Gördüğünüz gibi sayacımızı döngümüzün içinde kendimiz oluşturduk. Böylelikle döngü 100 kere çalışıp sayac 100'den büyük olunca program döngüden çıkacaktır.

Do while Döngüsü

Kod:
Do
{
    Çalışacak kod;
}while(şart);

Do while döngüsü while döngüsüne çok benzer. Tek farkları while döngüsü şartı döngünün başında kontrol ederken, do while döngüsü şartı döngünün sonunda kontrol eder. Bu durum do while döngüsünün şart sağlansın veya sağlanmasın kodu bir kereliğine çalıştırmasına neden olur.

Bu durumu anlamak için basit bir örnek yazalım:

C#:
int i = 0;
do
{
     Console.WriteLine("Merhaba dünya");
} while (i > 10);
Console.ReadKey();

Çıktı:
Kod:
Merhaba dünya

Yukarıda şart sağlanmamasına rağmen döngü bir sefer çalıştı çünkü do while döngüsünde şart en son kontrol edilir.


Contınue ve Break deyimleri


Bu bölümde döngüler içinde kullanacağımız Continue ve Break deyimlerinden bahsedeceğim.
Continue deyimini döngünün herhangi bir turunu atlamak istediğimizde kullanılır. Örnek olarak 1'den 100'e kadar olan çift sayıları toplayan bir program yazalım.
Kod:
C#:
int toplam = 0;
for (int i = 1; i <= 100; i++)
{
     if (i % 2 == 1)
     {
         continue;
     }
     toplam += i;
}
Console.WriteLine($"toplam :{toplam}");
Console.ReadLine();

Yukarıda i değişkeninin i % 2 == 1 ile tek sayı oldup olmadığını tespit ettik ve tek sayı olduğu durumlarda if yardımı ile continue deyimini kullanarak döngünün o turunu es geçmesini sağladık.

Şimde gelelim break deyimine. Break deyimi döngüden çıkmamızı sağlıyor. Örnek olarak kullanıcıdan alınan değer sıfır olana kadar, alınan değerleri toplayan bir program yazalım.

Kod:
C#:
int toplam = 0;
int değer;
while (true)
{
     Console.WriteLine("Bir değer giriniz:");
     değer = Convert.ToInt32(Console.ReadLine());
     if (değer == 0)
     {
         break;
     }
     toplam += değer;
}
Console.WriteLine("Değerlerin toplamı : " + toplam);
Console.ReadLine();

Yukarıda if yardımı ile kullanıcıdan alınan değer 0 olduğunda break deyimi ile döngüden çıkıyoruz.
 

Gladiaus

Katılımcı Üye
17 Tem 2021
317
83
Baku, Azerbaijan
Döngüler
csharp-1200x600.png
Döngüler birden fazla tekrarlanması gereken olayların gerçekleşmesinde yardımcı olan yapılardır. Döngülerle yapacağımız olayları daha hızlı, daha okunaklı ve hemde daha az kod satırı ile yazmamıza olanak sağlar. Basit bir örnek olarak ekrana 1000 tane "merhaba" yazısı yazdırmaya kalkarsak bu işlem bizi çok zorlar ama bu işlemi döngüler yardımı ile yapmaya kalkarsak çok daha hızlı ve kolay şekilde yapabiliriz. C# da 4 farklı döngü türü mevcuttur. Bunlar for, foreach, while, do while'dır.

For Döngüsü
Tekrarlanması istenen kod bloğunun, belirtilen şart sağlandığı sürece ve belirtilen artış veya azalış sayısı kadar tekrarlanmasını sağlayan yapıdır. Programlamada en çok kullanılan döngü for diyebiliriz. For döngüsü aşağıdaki gibi kullanılır:
Kod:
For (sayaç değişkeni; şart; artış veya azalış değişkeni)
{
    Yapılacak işlemler;
{

Döngü ilk çalıştığında sayaç değişkeni çalışır ve daha sonra şart'a bakılır. Şart sağlanıyorsa {} içindeki kod çalışır ve son olarak artış yada azalış değişleni işleme konulur ve döngü tekrarlanır.
Örnek olarak 100 den geriye doğru çift sayıları ekrana yazan bir program yazalım.

Örnek kod:
C#:
for (int i = 100; i >= 0; i -= 2)
{
     Console.WriteLine(i);
}
Console.ReadKey();

Çıktı:
Kod:
100
98
96
.
.
.
0

Yukarıda int i = 100 ile bir başlangıç değeri tanımladık ve şart olarak i >= 0 kodunu yazdık. 100 olan i 0 dan büyük veya eşit olduğu sürece yukarıdaki kod bloğu çalışacaktır. Son olarak i -= 2 kodu ile i değişkenini her döngü döndüğünde 2 azaltık.

Şimdi biraz daha zor bir şey yapalım, ilk okulda öğrendiğimiz çarpım taplosunu konsol ekranına yazalım.

Kod:
C#:
int satır = 0;
int sütün = 0;
for (int i = 1; i <= 10; i++)
{
     for (int j = 1; j <= 10; j++)
     {
         Console.SetCursorPosition(sütün, satır + j);
         // imlecin ekrandaki konumunu belirledik
         Console.WriteLine("{0} X {1} = {2}", i, j, (i * j));
     }
     sütün += 15;
     if (i == 5)
     {
         sütün = 0;
         satır = 15;
     }
}
Console.ReadKey();

Çıktı:
Kod:
1 X 1 = 1      2 X 1 = 2      3 X 1 = 3      4 X 1 = 4      5 X 1 = 5
1 X 2 = 2      2 X 2 = 4      3 X 2 = 6      4 X 2 = 8      5 X 2 = 10
1 X 3 = 3      2 X 3 = 6      3 X 3 = 9      4 X 3 = 12     5 X 3 = 15
1 X 4 = 4      2 X 4 = 8      3 X 4 = 12     4 X 4 = 16     5 X 4 = 20
1 X 5 = 5      2 X 5 = 10     3 X 5 = 15     4 X 5 = 20     5 X 5 = 25
1 X 6 = 6      2 X 6 = 12     3 X 6 = 18     4 X 6 = 24     5 X 6 = 30
1 X 7 = 7      2 X 7 = 14     3 X 7 = 21     4 X 7 = 28     5 X 7 = 35
1 X 8 = 8      2 X 8 = 16     3 X 8 = 24     4 X 8 = 32     5 X 8 = 40
1 X 9 = 9      2 X 9 = 18     3 X 9 = 27     4 X 9 = 36     5 X 9 = 45
1 X 10 = 10    2 X 10 = 20    3 X 10 = 30    4 X 10 = 40    5 X 10 = 50





6 X 1 = 6      7 X 1 = 7      8 X 1 = 8      9 X 1 = 9      10 X 1 = 10
6 X 2 = 12     7 X 2 = 14     8 X 2 = 16     9 X 2 = 18     10 X 2 = 20
6 X 3 = 18     7 X 3 = 21     8 X 3 = 24     9 X 3 = 27     10 X 3 = 30
6 X 4 = 24     7 X 4 = 28     8 X 4 = 32     9 X 4 = 36     10 X 4 = 40
6 X 5 = 30     7 X 5 = 35     8 X 5 = 40     9 X 5 = 45     10 X 5 = 50
6 X 6 = 36     7 X 6 = 42     8 X 6 = 48     9 X 6 = 54     10 X 6 = 60
6 X 7 = 42     7 X 7 = 49     8 X 7 = 56     9 X 7 = 63     10 X 7 = 70
6 X 8 = 48     7 X 8 = 56     8 X 8 = 64     9 X 8 = 72     10 X 8 = 80
6 X 9 = 54     7 X 9 = 63     8 X 9 = 72     9 X 9 = 81     10 X 9 = 90
6 X 10 = 60    7 X 10 = 70    8 X 10 = 80    9 X 10 = 90    10 X 10 = 100

Yukarıda "Console.SetCursorPosition(sütün, satır + j);" kodu ile ekranda yazacağımız yazının konumunu belirledik. İlk for döngüsündeki i ilk çarpanı temsil eder ve j ise ikinci çarpanı temsil eder. İlk başlarda bu iç içe for döngüsü zor görünebilir ama zamanla uğraştıkça daha kolay gelmeye başlıyor.

Şimdide kullanıcıdan aldığımız bir stringi consol ekranına dik eşkenar dörtgen şeklinde yazdıran bir program yazalım.

Kod:
C#:
int satır = 0;
int sütün = 50;
string kelime;
Console.Write("Bir kelime giriniz:");
kelime = Console.ReadLine();
Console.Clear();
for (int i = 0; i <= 9; i++)
{
     Console.SetCursorPosition(sütün - i, satır + i);
     Console.WriteLine(kelime);
     Console.SetCursorPosition(sütün + i, satır + i);
     Console.WriteLine(kelime);
     if (i == 9)
     {
         for (int j = 0; j < 10; j++)
         {
             Console.SetCursorPosition(sütün - (i - j), satır + (i + j));
             Console.WriteLine(kelime);
             Console.SetCursorPosition(sütün + (i - j), satır + (i + j));
             Console.WriteLine(kelime);
         }
     }
}
Console.ReadKey();

Çıktı:
C#:
                                                  TÜRK HACK TEAM
                                                 TÜTÜRK HACK TEAM
                                                TÜRKTÜRK HACK TEAM
                                               TÜRK HTÜRK HACK TEAM
                                              TÜRK HACTÜRK HACK TEAM
                                             TÜRK HACK TÜRK HACK TEAM
                                            TÜRK HACK TETÜRK HACK TEAM
                                           TÜRK HACK TEAMTÜRK HACK TEAM
                                          TÜRK HACK TEAM  TÜRK HACK TEAM
                                         TÜRK HACK TEAM    TÜRK HACK TEAM
                                          TÜRK HACK TEAM  TÜRK HACK TEAM
                                           TÜRK HACK TEAMTÜRK HACK TEAM
                                            TÜRK HACK TETÜRK HACK TEAM
                                             TÜRK HACK TÜRK HACK TEAM
                                              TÜRK HACTÜRK HACK TEAM
                                               TÜRK HTÜRK HACK TEAM
                                                TÜRKTÜRK HACK TEAM
                                                 TÜTÜRK HACK TEAM
                                                  TÜRK HACK TEAM

Son olarak kullanıcıdan alınan bir sayının faktoriyelini hesaplayan bir program yazalım.

Kod:
C#:
int s;
int fak = 1;
Console.WriteLine("Bir sayı giriniz:");
s = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= s; i++)
{
     fak *= i;
}
Console.WriteLine("Sonuç :" + fak);
Console.ReadKey();

Foreach Döngüsü


Foreach döngüsü diziler veya koleksiyonlar üzerinde çalışacağımız zaman oldukça işimize yarar. Eleman sayısının bilinmediği durumlarda çok kullanışlıdır. Foreach dizinin veya koleksiyonun içindeki verileri tek tek döndürmemize olanak sağlar.

Foreach aşağıdaki gibi tanımlanır:

Kod:
foreach (DeğişkenTipi Değişkenİsmi in ListeYadaKoleksiyonİsmi)
{
    Çalışacak kod;
}

Foreach ile yaptığımız işlemleri for döngüsü ile de yapabiliriz ama foreach daha pratik ve hızlıdır. Örnek olarak for döngüsü ile bir kod yazalım:

Kod:
C#:
string[] isim = { "Ali", "Veli", "Ahmet", "Mehmet", "Cemal", "Kemal" };
for (int i = 0; i < isim.Length; i++)
{
     Console.WriteLine(isim[i]);
}

Yukarıda "isim.Length" ile isim dizisinin eleman sayısını öğrendik ve "Console.WriteLine(isim);" ile hepsini tek tek ekrana yazdırdık. Dizinin eleman sayısını "isim.Coun()" ile de öğrenebiliriz.

Şimdi aynı işlemi Foreach Döngüsü ile yapalım:

Kod:
C#:
string[] isim = { "Ali", "Veli", "Ahmet", "Mehmet", "Cemal", "Kemal" };
foreach (var i in isim)
{[/I]
 [I]Console.WriteLine(i);
}

Yukarıda var i ile bir i değişkeni oluşturduk ve foreach döngüsü ile isim dizisinin elemanlarını sırayla i değişkenine atadık ve ekrana yazdırdık.
Çıktı:
Kod:
Ali
Veli
Ahmet
Mehmet
Cemal
Kemal

While döngüsü

Kısaca while döngüsü şart sağlandığı(yani True) sürece bloğun içindeki kodu döngü şeklinde çalıştıran bir yapıya sahiptir. While döngüsünde tekrar sayıları belli değildir, daha doğrusu kaç kez tekrarlanacağını belirtmek zorunlu değildir, tekrar sayısını daha sonradan biz belirleyebiliriz.

While döngüsü aşağıdaki gibi kullanılır:

Kod:
While(şart)
{
    Yapılacak işlem;
}

Şart sağlandığı sürece kod bloğunun içindeki kod çalışmaya devam eder.
Örnek olarak while döngüsü ile klavyeden girilen bir sayının basamaklarının toplamını yazan bir program yazalım.

Kod:
C#:
int sayi, toplam = 0;
Console.Write("Bir sayi giriniz:");
sayi = Int32.Parse(Console.ReadLine());
while (sayi != 0)
{
     toplam += sayi % 10;
     sayi /= 10;
}
Console.WriteLine($"Basamakların toplamı :{toplam}");
Console.ReadKey()

toplam += sayi % 10; satırı ile sayının son basamağını toplam değişkenine ekledik ve sayi /= 10; yardımı ile sayımızın son basamağını sildik. Böyle devam ederek sayı değişkenimiz son durumda 0'a eşit olacak ve sayi != 0 (sayi eşit değildir 0'a) şartımız artık sağlanmadığından döngü son bulacaktır.

Şimdi daha kolay bir örnek yapalım 1'den 100'e kadar olan sayıları toplayan bir program yazalım.

Kod:
C#:
int sayac = 1;
int toplam = 0;
while (sayac <= 100)
{
     toplam += sayac;
     sayac++;
}
Console.WriteLine($"toplam :{toplam}");

Çıktı:
Kod:
5050

Gördüğünüz gibi sayacımızı döngümüzün içinde kendimiz oluşturduk. Böylelikle döngü 100 kere çalışıp sayac 100'den büyük olunca program döngüden çıkacaktır.

Do while Döngüsü

Kod:
Do
{
    Çalışacak kod;
}while(şart);

Do while döngüsü while döngüsüne çok benzer. Tek farkları while döngüsü şartı döngünün başında kontrol ederken, do while döngüsü şartı döngünün sonunda kontrol eder. Bu durum do while döngüsünün şart sağlansın veya sağlanmasın kodu bir kereliğine çalıştırmasına neden olur.

Bu durumu anlamak için basit bir örnek yazalım:

C#:
int i = 0;
do
{
     Console.WriteLine("Merhaba dünya");
} while (i > 10);
Console.ReadKey();

Çıktı:
Kod:
Merhaba dünya

Yukarıda şart sağlanmamasına rağmen döngü bir sefer çalıştı çünkü do while döngüsünde şart en son kontrol edilir.


Contınue ve Break deyimleri


Bu bölümde döngüler içinde kullanacağımız Continue ve Break deyimlerinden bahsedeceğim.
Continue deyimini döngünün herhangi bir turunu atlamak istediğimizde kullanılır. Örnek olarak 1'den 100'e kadar olan çift sayıları toplayan bir program yazalım.
Kod:
C#:
int toplam = 0;
for (int i = 1; i <= 100; i++)
{
     if (i % 2 == 1)
     {
         continue;
     }
     toplam += i;
}
Console.WriteLine($"toplam :{toplam}");
Console.ReadLine();

Yukarıda i değişkeninin i % 2 == 1 ile tek sayı oldup olmadığını tespit ettik ve tek sayı olduğu durumlarda if yardımı ile continue deyimini kullanarak döngünün o turunu es geçmesini sağladık.

Şimde gelelim break deyimine. Break deyimi döngüden çıkmamızı sağlıyor. Örnek olarak kullanıcıdan alınan değer sıfır olana kadar, alınan değerleri toplayan bir program yazalım.

Kod:
C#:
int toplam = 0;
int değer;
while (true)
{
     Console.WriteLine("Bir değer giriniz:");
     değer = Convert.ToInt32(Console.ReadLine());
     if (değer == 0)
     {
         break;
     }
     toplam += değer;
}
Console.WriteLine("Değerlerin toplamı : " + toplam);
Console.ReadLine();

Yukarıda if yardımı ile kullanıcıdan alınan değer 0 olduğunda break deyimi ile döngüden çıkıyoruz.
uzun bilgi olmuş sağol
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.