Professional Documents
Culture Documents
Döngüler
Bu Bölümde
Döngü Nedir? 110 Bu bölümde döngü kavramını, döngülerin ne işe ya-
Neler Öğrendik? 120 radığını, for, while, do-while döngülerini, bu döngü-
ler üzerinden algoritmik örneklerin nasıl yapıldığını,
aritmetik döngü işlemlerini, while ve do-while dön-
güleri arasındaki farkı öğreneceğiz.
110 Bölüm 6 Döngüler
Döngü Nedir?
Programlamada karar yapılarından sonra önem derecesi çok yüksek olan bir di-
ğer başlık döngülerdir. Tekrar gerektiren yapılar için kullanılan döngüler belirli
şartlar sağlanana kadar içerisinde bulunan işlemi yaparlar. Örneğin; 100 kişiden
oluşan bir öğrenci listemiz olduğunu varsayalım. Bu liste
» Ali » Eda
» Ahmet » Fatih
» Ayşe » Metin
» Emel
Şeklinde devam ettiğini düşünelim. Sizden bu öğrencilerin isimlerinin önüne
1’den 100’e kadar sayı değerleri atamanız istendiğini varsayalım. Yani listenin
yeni hali;
1-Ali
2-Ahmet
3-Ayşe
4-Emel
5-… şeklinde devam edecektir.
Eğer biz burada manuel yöntemi kullanarak elle tek tek sayı girişi yapmak ister-
sek bu durum çözüm için kabul edilebilir ancak çözüm yolu olarak sonucu ciddi
anlamda uzatan ve oldukça fazla zaman alan bir yöntem olacaktır.
Bunun yerine bir döngü yardımıyla öğrencilerimizin sıra numaralarını otoma-
tik olarak vermesini sağlayabilir ve bu işi sadece 2 3 satır gibi çok kısa bir kod
bloğuyla çözebiliriz. Veya bir başka örnek üzerinden gidelim. Sizden 1 ile 10
arasındaki sayıların toplamını bulmanız istendi. Siz bunu bir sonuç değişkeni
oluştuurp atamanızı 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 şeklinde yaptığınız
zaman program sorunsuz bir şekilde çalışacaktır, fakat burada problem aralıktır.
Diyelim 1’den 10’a kadar değil de 1’den 1000’e kadar olan sayıların toplamı is-
tendi o halde ne yapacağız? Elle tek tek 1000’e kadar olan sayıları yazıp toplama-
nın doğru bir yöntem olmayacağı nettir. İşte burada da devreye yine döngüler
girecektir. O halde döngüler için sözümüzü toparlayacak olursak; belirli şartlar
sağlanan kadar içerisinde bulunan işlemi gerçekleştiren yapılardır diyebiliriz.
Programlamada kullanacağımız 4 temel döngümüz bulunmaktadır. Bunlar For,
Whilte, Do-While ve Foreach döngüleridir.
Döngü Nedir? 111
for Döngüsü
Döngüler içerisinde en çok kullanacağımız döngü türüdür. Genel yapısı 3 temel
parametreye dayanmaktadır. Bu parametreler başlangıç, bitiş ve artış/azalış de-
ğerleridir. For döngüsünde de işlem ilgili şart sağlandığı sürece devam edeceği
için tıpkı karar yapılarında olduğu gibi sonuna noktalı virgül konulmaz. Döngü-
lerde genellikle değişken ismi olarak i harfi kullanılır bu bir kural değil gelenek-
sel bir yaklaşımdır ve Fortran dilinden beri kullanılmaktadır. Buradaki i harfinin
açılımı matematikte serilerde kullanılan i harfidir.
For döngüsünün syntax yapısı şu şekildedir;
For (1;2;3)
» 1: Döngünün başlangıç değerini tutar yani döngü kaçtan başlayacaksa o değe-
rin ataması yapılır.
» 2: Döngünün bitiş değerini tutan parametredir.
» 3: Döngünün artış ya da azalış değerinin tutulduğu parametredir. Arttırma işle-
mi birer birer olabileceği gibi farklı değerlerde de olabilir.
NOT for döngüsünde parametreler birbirinden noktalı virgül sembolü ile ayrılırlar.
Uygulama 1
Listbox aracımıza 10 kez “Merhaba Dünya” yazdıran kodu yazalım.
private void button1_Click(object sender, EventArgs e)
{
for(int i = 1; i <= 10; i++)
{
listBox1.Items.Add("Merhaba Dünya");
}
}
112 Bölüm 6 Döngüler
Formumuza araç olarak Button ve Listbox ekleyip buton aracımıza çift tıkladık.
İlk değeri 1 olan ve 10’dan küçük ya da 10’a eşit olduğu sürece ilgili işlemi yapa-
cak for döngümüzü tanımladık. i ++ ifadesi ile i değişkenimizin değerini birer
birer arttırdık. Döngümüzün şartı sağlandığı müddetçe yani i değeri 10’dan
küçük ya da eşit olduğu sürece yapacağı işlem olan Listbox aracımıza metin
yazdırmayı tıpkı karar yapılarında olduğu gibi süslü parantez blokları içerisinde
tanımlayarak kod bloğumuzu tamamladık.
Uygulama 2
Listbox aracımıza 1’den 10’a kadar olan sayıları yazdıran programı yazalım.
Önceki örneğimizde olduğu gibi yine 1’den 10’a kadar giden bir döngü
tanımladık. Değişken değeri olarak tanımladığımız i harfi yerine farklı bir isim
verebiliriz. Ayrıca değişken tanımlama işlemi döngü içinde yapılmak zorunda
değildir. Döngünde önce de tanımlanabilir. Daha sonra Listbox aracımıza direkt
olarak i değerini ekleterek yazdırma işlemini tamamladık.
Uygulama 3
1 ile 20 arasındaki çift sayıları listeleyen programı yazalım.
Yöntem 1
{
listBox1.Items.Add(i);
}
}
2.yöntemde ise döngümüzü 1’den başlatıp 20’ye kadar ilerletip her adım i de-
ğerimizin 2’ye göre modunu alarak işlemimizi gerçekleştirdik. Eğer i değerimi-
zin 2’ye bölümünden kalan 0 ise ilgili i değerini Listbox aracına ekleyecek aksi
durumda döngü işlemine devam edecektir. Böylece uygulamamızı tamamla-
mış olduk.
114 Bölüm 6 Döngüler
Uygulama 4
1 ile 100 arasında 5’e ve 7’ye tam bölünen sayıları listeleyelim.
Uygulama 5
1 ile 10 arasındaki sayıların toplamını hesaplayan kodu yazalım.
Toplama işlemini yapabilmek için ilk değeri 0 olan bir toplam değişkeni tanım-
ladık. Burada toplam değişkenimize başlangıçta 0 değerini vermeseydik defa-
ult yani varsayılan değeri null olduğu için null bir değer üzerinde aritmetik iş-
lem yapamayacağından dolayı programımız hata verecekti. Daha sonra 1 ile 10
arasında döngümüzü oluşturup döngü içerisinde toplam değişkenimize i’den
gelen değerin atamasını. Yaptık. toplam = toplam + i ifadesinde toplam değiş-
keninin üzerine her defasında en son i değerini ekleterek işlemimizi gerçekleş-
tirdik. Son olarak toplam değişkeninin değerini Label aracımıza yazdırarak kod
bloğumuzu tamamladık.
Uygulama 6
5 sayısının faktöriyelini hesaplayan programı yazalım.
Uygulama 7
Bir bakteri türü her saatin sonunda kendini 2’ye bölerek çoğalmaktadır. Yeni
oluşan bakterilerde aynı şekilde 2’ye bölünerek çoğalıyorlar. 24 saatin sonun-
da bu ortamda kaç tane bakteri bulunduğunu hesaplayan algoritmik örneği
yapalım.
whıle Döngüsü
Döngüler başlığının 2. konusu olan while döngüsü şart sağlandığı müddetçe
anlamı taşımaktadır. Syntax olarak for döngüsünden biraz daha farklı olan bu
döngümüzde arttırma işlemi işlemlerin olduğu yerde yapılır. Syntax yapısına
bakacak olursak;
Döngü Nedir? 117
While ( şart)
{
İşlemler
}
Şeklinde olacaktır. İşlemler kısmında yapılan işleme göre aritmetik arttırma ya
da azaltmanın yanında farklı durumlarda olabilir. Bu konuda detaylı örnekleri
veri tabanı bölümünde göreceğiz.
Uygulama 8
While döngüsü ile Listbox aracımıza 10 kez Yaşasın Cumhuriyet yazan kodu
yazalım.
Sayaç isminde ilk değeri 1 olan tam sayı türüne bir değişken tanımladık. While
döngümüzü oluşturup şartımızı sayaç değerinin 10’dan küçük ya da eşit olma-
sına bağladık. Yani sayaç değerimiz 10’dan küçük ya da eşit olduğu sürece süslü
parantez içerisindeki işlemleri yapacaktır. Daha sonra Listbox aracımıza metni-
mizi yazdırıp hemen altında sayaç değerimizi arttırdık eğer sayacı arttırmazsak
program bugda kalacak ve sonsuz döngüye girecektir.
118 Bölüm 6 Döngüler
Uygulama 9
While döngüsü ile 1’den 10’a kadar olan sayıları toplayalım.
do-whıle Döngüsü
Yapı olarak while döngüsüne çok benzeyen do-while döngüsünün farkı “şart
sağlamasa bile en az 1 kez işlemi gerçekleştirmesidir.” Yani while döngüsünde
eğer şart sağlanmazsa hiçbir şekilde işlem gerçekleşmeyecektir ancak do-while
önce yap sonra döngüye gir modeliyle çalıştığı için işlemi bir kez gerçekleştirip
daha sonra ilgili şartın sağlanıp sağlanmadığının kontrolünü yapacaktır. Şimdi
aynı 2 örneği önce while sonra do-while ile yapalım.
Döngü Nedir? 119
Uygulama 10
While döngüsü ile ekrana 5 kez “merhaba” yazdıralım ancak sayaç değerini
6’dan başlatalım.
Uygulama 11
Do-While döngüsü ile ekrana 5 kez “merhaba” yazdıralım ancak sayaç değerini
6’dan başlatalım
Neler Öğrendik?
Bu bölümde döngüleri, neden döngü kullandığımı, for döngüsünü, paramet-
relerini, aritmetik işlemlerde ardışık toplam, çarpım gibi işlemlerin nasıl yapıl-
dığını, while döngüsünü, do-while döngüsünü, bu iki döngü arasındaki farkı,
algoritmik döngü örneklerini öğrenmiş olduk.