CSharp For Döngüsü

Döngüler tekrar gerektiren durumlarda kullanılır. Örnek olarak 1’den 100’ e kadar olan rakamları yazdırmak istiyorsunuz. Bunun için döngü kullanmak gerekir. Veya bunların toplamlarını yaptırmak için de döngü kullanılır. Veya bir veritabanındaki kayıtları okumak için de döngüye ihtiyaç duyulabilir. C#’da dört tip temel döngü kullanılır. Bunlar;

  • For
  • While
  • Do / While
  • Foreach

Bu döngü tiplerinden Foreach döngüsü diziler ile birlikte kullanılır.

For Döngüsü

Bu döngü 3 temel parametre üzerine kuruludur. Bunlar birbirinden noktalı virgül ile ayrılır. Bunlardan ilk parametre döngünün başlangıç noktasını, ikincisi bitiş noktasını, üçüncüsü ise döngüdeki artış / azalış miktarını belirtmek için kullanılır.

Syntax şu şekildedir:

for (başlangıç, bitiş, artış/azalım miktarı)

Basit bir örnekle başlayalım. Bir forma bir buton ekleyelim. Bir adette ListBox ekleyelim. Butona bastığımda listboxa alt alta 10 defa İsmail GÜRSOY yazsın.

Burada i benim sayacım oluyor aslında. Sayacım 1 değerinden başlasın diyorum ve bu sayaç 10’dan küçük olduğu müddetçe 1’er arttırarak devam etsin diyorum. Bu her adımda da parantez içindeki listboxa İsmail GÜRSOY yazısını ekle diyorum aslında.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i=1; i<=10; i++)
            {
                listBox1.Items.Add("İsmail GÜRSOY");
            }
        }
    }
}

Peki burada her bir İsmail GÜRSOY yazısının önüne kaçıncı olduğunu yazdırarak işlemi tekrarlayalım.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i=1; i<=10; i++)
            {
                listBox1.Items.Add( i.ToString() +  ": İsmail GÜRSOY");
            }
        }
    }
}

listboxa 1’den 20’ye kadar olan rakamları yazan programı yazalım.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i=1; i<=20; i++)
            {
                listBox1.Items.Add(i);
            }
        }
    }
}

1’den 100’e kadar olan sayıları 2’şer arttırarak yazan program. Yine Listbox’a yazdıralım.Başlangıç 1 olsun.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i=1; i<=100; i=i+2)
            {
                listBox1.Items.Add(i);
            }
        }

Örneğimiz 1 ile 20 arasındaki sayıların toplamı olsun.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int toplam = 0;
            for (int i=1; i<=20; i++)
            {
                toplam = toplam + i;
                
            }
            MessageBox.Show("Toplam: " + toplam.ToString());
        }
    }
}

Bir örnek daha yapalım. 1 ile 20 arasındaki çift sayıların toplamını yapalım.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int toplam = 0;
            for (int i=2; i<=20; i+=2)
            {
                toplam = toplam + i;
                
            }
            MessageBox.Show("Toplam: " + toplam.ToString());
        }
    }
}

For döngüsü ile birlikte if karar yapısınının kullanımı:

Şöyle bir örnek yapalım. Butona basıldığında, 1 ile 100 arasında 5’e tam bölünebilen tam sayıları bir listboxa yazdıralım.

Bunun için önce bir döngü oluşturuyorum ve döngümün içinde de şartımı kontrol etmek için if karar yapısı kullanıyorum.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            for (int i=1; i<=100; i++)
            {
                if (i % 5 == 0)
                {
                    listBox1.Items.Add(i);
                    
                }
                
            }
            
        }
    }
}

Bir örnek daha yapalım. Bu sefer 1 ile 100 arasında hem 3 hem de 7 ye bölünebilen sayıları listeleyelim.

Şimdi burada döngümün içinde kullanacağım if bloğunda iki şartım olacak. Bu şartlarım hem 3 hem de 7 ye bölünebilme durumum. Dolayısı ile if karar yapım içinde && operatörünü kullanmam gerekiyor. Yani Ve operatörünü kullanıyorum.

Bu arada hem 3 hem de 7’ye bölünebilen sayılar aslında 21’e bölünebilme şartı ile tek koşulda aranabilir ama biz iki şart üzerinden kodlarımızı yazalım 😊

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            for (int i=1; i<=100; i++)
            {
                if (i % 3 == 0 && i % 7 == 0)
                {
                    listBox1.Items.Add(i);
                    
                }
                
            }
            
        }
    }
}

Klavyeden girilen sayı kadar sayıları listboxa yazan program örneği yapalım. Bunun için formumda bir textbox, bir listbox bir de buton kullanıyorum. Kalvyeden textboxa veri girişi yapıp, girdiğim veri sayısal olacak şekilde bunu alıp, bu sayı kadar listboxa rakamları ekleyeeğim. Bunun için önclikle bir sayaç, bir girilen değeri tutan bir değişken lazım. O halde kodlarım şöyle;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int GirilenDeger = Convert.ToInt32(textBox1.Text);
            for (int i=1; i<=GirilenDeger; i++)
            {
                listBox1.Items.Add(i);
                
            }
            
        }
    }
}

Bir örnek daha yapalım. TextBox’dan girilen sayının tam bölenlerini bulan program olsun. Bu tam bölenleri de bir listboxa yazalım. Yine bir TextBox, bir buton bir de ListBox ekleyelim. Burada elde edeceğimiz sonuç örneğin textboxa 10 girdik. Tam bölenleri listelediğimizde 1,2,5 ve 10 gelecektir sonuç olarak.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int GirilenDeger = Convert.ToInt32(textBox1.Text);
            for (int i=1; i<=GirilenDeger; i++)
            {
                if (GirilenDeger % i == 0)
                {
                    listBox1.Items.Add(i);
                }               
                
            }
            
        }
    }
}

Klavyeden girilen sayının faktöriyelini alan program

Burada yine bir textbox, bir buton kullanalım. TextBoxa girilen sayı için butona basıldığında faktöriyeli bulan programı yazalım. Sonucu messageBox ile gösterelim.Dikkat edeceğim husus, 1! = 1 olması sebebi ile sonuc değişkenimde başlangıcın 1 olarak atanması gerektiğidir.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KararYapilariOrnekler
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int GirilenDeger = Convert.ToInt32(textBox1.Text);
            //Sonuc değerimin başlangıcı 1, çünkü 1! = 1'dir.
            int sonuc = 1;
            for (int i=1; i<=GirilenDeger; i++)
            {
                sonuc = sonuc * i;   
            }
            MessageBox.Show("Sonuç: " + sonuc.ToString());
        }
    }
}

Bir cevap yazın

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