28 Ekim 2013 Pazartesi

C# Döngüleri


Döngüleri neden kullanırız?

Döngü program içinde tekrar eden işlemlerde kullanılır. Mesela güncel bir örnek vermek gerekirse, personellerin maaşlarını hesaplamak istiyorsunuz. Sistemde 1 personel de olabilir, 1000 personel de. Her seferinde maaş hesaplamak için aynı kodları yazmaktansa hesaplama sistemini tüm personel için döngü içine sokarsak, 1000 personelin dahi olsa, 3 satır kodla tüm maaşlarını hesaplayabiliriz.

C# da 4 tane döngü vardır. Bunlar;

1. For
2. While
3. Do-While
4. Foreach

1. For döngüsünün kullanımı
For (Başlangıç ; Şart ; Artım veya Azalım )

Soru: Mesela ekrana klavyeden girilen metni beş kez yazan programı yazalım.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace For_dongusu
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Metni giriniz...:");
            string metin= Console.ReadLine();
            for (int i = 0; i <= 5; i++)
                Console.WriteLine(metin);

        }
    }
}


Burada dikkat etmemiz gereken şeyler console.write ekrana yazı yazmak için kullanıldı. Console.ReadLine ile de kullanıcıdan bilgi alındı write ile writeLine arasındaki fark ise biri yan yana yazar digeri yani writeLine ise alt alta yazar.

Bir de for döngüsünde içindeki int i integer tipli i isminde bir değişken tanımladık. Demek ki, döngü için bu şekilde bir değişken tanımlayabiliyoruz, ama dikkat edin, for döngüsü için tanımlanan değişken sadece ve sadece bir hemen altındaki satır için de kullanılır. Yani Console.WriteLine(i); dersem, sonuç:

1
2
3
4
5

diye alt alta yazar. Fakat bu satırdan sonra i değişkenini kullanmak istesek kullanamayız. Bunun için:

{
}
Süslü parantez dediğimiz olayı kullanmalyız
Yani
for (int i = 0; i <= 5; i++)
{
                Console.WriteLine(metin);
}


Bu şekilde süslü parentez içinde i değişkenini her yerde kullanabilriz.

2. While Döngüsü:

While (Şart)
{
Yapılacak işlem
Artım ve ya azalım
}


Yukarıdaki yaptığımız örneğin birbirine kıyaslamak adına aynısını While döngüsü ile yapalım:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace While
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Metni giriniz...:");
            string metin = Console.ReadLine();
            int i=0;
            while (i < 5)
            {
                Console.WriteLine(metin);
                i++;
            }
        }
    }
}


For döngüsü için söylediğimiz şeyler aynen While için de geçerli. Dikkat ederseniz hem for, hem de While döngüsünde şart için tanımladığım i değişkenin başlangıç değerini 0 verdim, yoksa sorunla karsılaşabilirsiniz.

3. Do - While Döngüsü

Do
{
Yapılacak işlem;
Artım veya azalım;
}
Şart;


Do - while döngüsü diğer döngülerden ayıran bir özellik ise şarta bakılmadan işlemin bir kez çalışmasıdır. Çünkü, şart ifadesi işlem satırından sonra gelir. Yukarıdaki örneği do-while ile yapmaya çalışalım.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace While
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Metni giriniz...:");
            string metin = Console.ReadLine();
            int i = 0;
            do
            {
                Console.WriteLine(metin);
                i++;
            } while (i < 5);
        }
    }
}


Dikkat ederseniz bugüne kadarki tüm şart ifadelerinde ; bu işareti parantez dışına koymamıştık. Ama do - while'da buna dikkat ediniz.

Ve yine while (şart) 
{
Yapılacak işlem
}
Dışında kaldı do - while kullanımı da bu şekildedir.

4. Foreach

Foreach döngüsü bir dizi ya da koleksiyonunun her bir elemanı için döngü içerisindeki kodları çalıştırır. Genel yapısı şu şekildedir.
Kod
foreach (degiskenTipi degisken in dizi)
{
//kod bloğu;
}

Foreach döngüsü içerisinde tanımladığımız değişken dizinin elemanlarını tutar ve döngü içerisinde değişkene ulaşabiliriz.

Şimdi basit bir örnek yapalım. Bir dizi tanımlayalım ve dizinin elemanlarını ekrana yazdıralım.
Kod

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;



namespace Foreach

{

    class Program

    {

        static void Main(string[] args)

        {

            int[] rakamlar = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };



            foreach (int rakam in rakamlar)

            {

                Console.WriteLine(rakam);

            }

            Console.ReadLine();

        }

    }

}

Hiç yorum yok:

Yorum Gönder