NTP C# Dersi 6: Döngü (While)

Merhaba arkadaşlar, bu dersimizde döngüleri işleyeceğiz. Döngüler konusunda da karşımıza koşullar çıkacak. Her zaman dediğim gibi programlamanın çekirdeğini, temelini koşullar koşulların da çekirdeğini, temelini boolean ifadeler oluşturur.

Programlamada Döngü Nedir ?

Döngü, belirlenen bir koşulun boolean ifadesi true döndürdüğü sürece iş yapan yani kendi blog operatörleri (“{}”) içerisindeki kodları çalıştıran bir komuttur. True döndüğü sürece komut, kodlarını tekrar tekrar çalıştırır.

Bir koşul belirlemeden döngü oluşturmak olanaksızdır. Ama kısmen bunu başarmak mümkündür. Koşulun çekirdeğini boolean ifade oluşturuyor demiştik. “a > b” bir boolean ifade olabileceği gibi “true” da bir boolean ifadedir. Döngünün koşulu için true komutunu kullanırsak döngüyü bu şekilde de çalıştırabiliriz. Aslında programlamada true komutu tek başına bir koşul ifade edebilir. Fakat true komutunun bir koşul olmadığını düşünsek dahi döngüyü bir noktada sonlandırmak için döngü blogları içerisinde yine if gibi bir koşul komutu kullanmak zorundayız. Şayet burada da koşul belirlemez isek döngü sonsuza dek devam eder. Sonsuza kadar çalışan bir program olanaksızdır.

While Döngüsü

While, C Sharp’ta döngü tanımlamanın en sade halidir. Tek parametresi vardır ve bu parametreye bir boolean ifade atanarak döngü tanımlaması yapılır. Fakat döngünün kontrolünü sağlayabilmek için döngü blogları içerisinde bir sayaç kullanmak gerekir. Yani döngünün sonsuza dek devam etmemesi için bir sayaç şarttır.

While döngüsünde boolean ifadeye bakılır. Boolean ifade true sonucunu veriyor ise while bir kere döner. Yani while blogları içindeki kodlar bir kere çalışır. Sonra tekrar boolean ifade kontrol edilir ve yine true sonucunu veriyor ise while tekrar döner. Bu işlem boolean ifade false sonucunu verene dek sürer.

Programlamada Sayaç Nedir ?

C Sharp’ta sayaç denen bir komut veya nesne yoktur. Bir değişkene yüklenen özel bir görev neticesinde değişkene takılan lakaptır.

Sayaçlar, While döngüsü başta olmak üzere döngülerin veya işlemlerin kaç kere tekrar edeceğini veya ettiğini kontrol etmek için kullanılan sıradan değişkenlerdir. Bir değişkene yüklenen bu görev neticesinde değişken sayaç niteliğini alır.

Değişkene Sayaç Görevi Yükleme

Örneğin ekrana 10 kere “Merhaba Dünya” metnini yazdıracağız. While döngüsü ile bunu yaptırabiliriz. Döngü tanımlamak için bir koşul belirlememiz gerekir. Burada koşulumuz 10 kere döngünün çalışmasıdır. Koşulun boolean ifadesini “x <= 10” şeklinde tanımlamamız gerekir. Burada “x” int bir değişkendir. “x” 10’dan küçük veya 10’a eşit olduğu sürece while döngüsü çalışır. Döngüyü tanımlamadan önce “x”i tanımlar ve 1 sayısını yükleriz. “x” 10’dan küçük olduğu için döngü çalışacaktır. While bir kere döndükten sonra tekrar boolean ifadeyi kontrol edecektir. “x” değişkeninde bir değişiklik olmadığı için while tekrar dönecektir. Burada unuttuğumuz bir husus var. Değişkenimiz değişmediği sürece döngü devam edecektir. Biz işlemi 10 kere yaptırmak istiyoruz. Fakat değişken değişmez ise bu işlen potansiyel olarak sonsuza dek sürer. Bu hatadan kurtulmak için while komutunun blogları içerisinde “x” değişkenine 1 ekler isek yani while bolgları içerisinde x = x + 1; kodunu kullanır isek sonunda 11’e ulaşacağız ve döngü sonlanacaktır. Aynı zamanda 11’e ulaştığımızda döngü bizim istediğimiz gibi 10 kere dönmüş olacaktır. İşte “x” değişkeni burada sayaç görevi görür ve sayaç lakabını alır.

 

// [-F] : Ekrana istenildiği kadar “Merhaba Dünya” yazan program.
using System;
namespace yG_CS_Proje1
{
    class Program
    {
        static void Main(string[] args)
        {
            int sayac; // [01]
            Console.WriteLine("Tekrarlanacak miktarı girin."); // [02]
            int miktar = Convert.ToInt16(Console.ReadLine()); // [03]
            sayac = 0; // [04]
            while (sayac < miktar) // [05]
            { // [06]
                sayac = sayac + 1; // [07]
                Console.WriteLine(Convert.ToString(sayac) + " – Merhaba Dünya"); // [08]
            }
            Console.ReadKey(); // [09]
        }
    }
}
// [01]: “sayac” adında int bir değişken tanımladık. Bu değişkene sayaç görevi yükleyeceğiş. Bu sebeple adı da sayac olsun istedim.
// [02]: Ekrana “Tekrarlanacak miktarı girin.” Metnini yazdırdık.
// [03]: Klavyeden girilen metni tam sayı(int)ya çevirip, “miktar” adında bir int değişken tanımlar tanımlamaz, yükledik.
// [04]: “sayac” değişkenine 0 sayısını yükledik. Bkz. Sayacı 0’dan Başlatmanın Mantığı
// [05]: While komutunun parametresine “sayac < miktar” boolean ifadesini atadık.
// [06]: Boolean ifadenin true döndürdüğü vakit yapılacak işlemleri belirlemek için while blogunu açtık.
// [07]: “sayac” değikenindeki sayı ile 1’i tapladık ve yine sayac değişkenine yükledik. (Alternatif yazım şekilleri: “sayac++;” veya “sayac += 1;” bu iki kod da aynı işlevi görür.)
// [08]: “sayac” değişkenindeki sayıyı metne çevirdik. “sayac” değişkenindeki metne çevirdiğimiz sayı ile ” – Merhaba Dünya” metnini birleştirip ekrana yazdırdık.
// [09]: Konsol ekranının hemen kaybolmasını engelledik.

 
Sayacı 0’dan Başlatmanın Mantığı

Sayacı 1’den başlatmış olsaydık, boolean ifadeniz “sayac <= miktar” şeklinde olmak zorundaydı. Bu şekilde bir kodlama bilgisayara bir işlem fazladan yaptıracaktı. Yani bilgisayar “sayac”ın hem “miktar”dan küçük olup olmadığını kontrol etmek, hem de “sayac”ın “miktar”a eşit olup olmadığını kontrol etmek zorunda kalacaktı. İşlemi kısaltmak için sayacımızı 0’dan başlattık.

Bir dahaki dersimizde başka bir döngü tanımlamayı göreceğiz. İyi çalışmalar.

Önerilen diğer yazılar:
NTP C# Dersi 5: Koşul (If ve Switch)

NTP C# Dersi 7: Döngü (Do While ve For)

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>