C Sharp Programlama Dili/Akış kontrol mekanizmaları – for döngüsü

for döngüsü

Eğer programda -belli koşulları sağladığı sürece- birden fazla çalıştırılmasını istediğimiz kodlar varsa döngüler kullanılır. C#’ta en çok kullanılan döngü “for”dur. Kullanımı:

 for(ifade1;kosul;ifade2)
        komut;

veya

 for(ifade1;kosul;ifade2)
 {
        komut1;
        komut2;
        .
        .
        .
 }

for döngüsünün çalışma prensibi :

 for(ifade1;kosul;ifade2)
 {
        komut1;
        komut2;
        .
        .
        .
 }
  1. ifade1 çalıştırılır.
  2. Koşula bakılır. Eğer koşul sağlanıyorsa;
  3. küme parantezleri içindeki ya da -küme parantezleri yoksa- kendinden sonra gelen ilk satırdaki komut çalıştırılır
  4. ifade2 çalıştırılır.
  5. 2. adıma dönülür.
  6. Eğer koşul sağlanmıyorsa küme parantezleri dışına ya da -küme parantezleri yoksa- kendinden sonra gelen ilk satırdaki komuttan hemen sonraki satıra çıkılır. Dolayısıyla döngüden çıkılmış olur.

for döngüsüyle ilgili örnekler :

 using System;
 class AkisKontrolMekanizmalari
 {
        static void Main()
        {
                int toplam=0;
                for(int i=1;i<=3;i++)
                        toplam+=i;
                Console.Write("toplam={0}",toplam);
        }
 }

Bu program 1’den 3’e kadar olan tam sayıları (1 ve 3 dâhil) toplayıp toplamı ekrana yazacaktır.

 using System;
 class AkisKontrolMekanizmalari
 {
        static void Main()
        {
                float s;
                int si,f;
                bool a=true;
                for(;a;)
                {
                        Console.Write("Lütfen faktoriyelinin alınmasını istediğiniz sayıyı girin: ");
                        s=Convert.ToSingle(Console.ReadLine());
                        si=(int)s;
                        if(si!=s||s<1)
                        {
                                Console.WriteLine("Lütfen pozitif tam sayı girin.");
                                a=true;
                        }
                        else
                        {
                                a=false;
                                for(f=1;si>1;si--)
                                     f*=si;
                                Console.Write("Faktöriyeli={0}",f);
                        }
                }
        }
 }

Bu program girdiğimiz herhangi bir sayının faktöriyelini bulup ekrana yazar. Eğer girdiğimizi sayı tam sayı değilse veya 1’den küçükse “Lütfen pozitif tam sayı girin.” diyerek tekrar veri girişi ister.

UYARI: C# nokta (.) işaretini sayıların ondalık kısımlarını ayırmak için kullanırken, DOS aynı amaç için virgül (,) işaretini kullanır.

for döngüsüyle ilgili kurallar :

  • for döngüsünün parantezleri içindeki “for(int i=0;i<5;i++)” iki ifade ve bir koşulun istenirse bir tanesi, istenirse bazıları, istenirse de tamamı boş bırakılabilir; ancak noktalı virgüller mutlaka yazılmalıdır.
  • Tahmin edebileceğiniz gibi for döngüsünün içinde veya “for(int i=0;i<5;i++)” kısmında tanımlanan herhangi bir değişken döngünün dışında kullanılamaz. Bir değişkeni döngünün dışında kullanabilmemiz için o değişkenin döngüden önce tanımlanıp ilk değer verilmesi ve değişkeni kullanacağımız yerde de faaliyet alanının devam etmesi gerekmektedir. Bu bütün döngüler ve koşul yapıları için geçerlidir. Örneğin:
 using System;
 class AkisKontrolMekanizmalari
 {
        static void Main()
        {
              int a=0;
              for(int i=0;i<1;i++)
                  a=5;
              Console.Write(a);
        }
 }

Bu program ekrana 5 yazacaktır. Ancak;

 using System;
 class AkisKontrolMekanizmalari
 {
        static void Main()
        {
             int a;
             for(int i=0;i<1;i++)
                 a=5;
             Console.Write(a);
        }
 }

Bu program çalışmaz, çünkü a değişkeni döngüden önce tanımlanmasına rağmen ilk değer verilmiyor.

HATIRLATMA: Bir değişkenin faaliyet alanı tanımlandığı en iç bloğun içidir.

NOT:Console.Write(“{0,3}”,i); gibi bir ifadede i değişkeni 3 birimlik bir genişlikte sağa yaslı olarak yazılır. WriteLine ile de kullanılabilir. i; değişken, sabit ya da ifade olabilirken 3 yalnızca sabit olmalıdır. i bir ifade olsa bile parantez içine almaya gerek yoktur.

Örnek :

  • 1’den 1000’e (sınırlar dâhil) kadar olan sayılar içerisinde 5’e tam bölünen, ancak 7’ye tam bölünemeyen sayıları alt alta listeleyen, bu sayıların kaç tane olduğunu ve toplamını yazan bir program yazınız.
 using System;
 class AkisKontrolMekanizmalari
 {
      static void Main()
      {
           int toplam=0, sayi=0, i=5;
           for(;i<1001;i+=5)
           {
                if(i%35==0)
                     continue;
                sayi++;
                toplam+=i;
                Console.WriteLine(i);
           }
           Console.WriteLine("Sayısı: "+sayi);
           Console.WriteLine("Toplam: "+toplam);
      }
 }

About mehmetakifsonmez

Tokat Teknik ve Endüstri Meslek Lisesi - Bilişim Teknolojileri Alanı Şefi
Bu yazı C# Temel Seviye içinde yayınlandı. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s