C
Programlama Dili
DERS – 10


WHILE DEYİMİ:

B
ir ya da birden fazla deyimin tekrar edilemesini sağlarlar. C dilinde while, for ve do-while deyimleri döngü işlevini sağlar. Tekrar edilen deyimlere döngü gövdesi denir.

while (koşul) {

komut(lar);

}

Mantıksal ifade doğru olduğu sürece Deyim yürütülür. Eğer yanlış ise kontrol bir sonraki deyime geçer.

Yukarıdaki program son derece anlaşılır. İlk olarak i değerine sıfır atanıyor. Daha sonra i değeri 1 arttırılıyor. i++=0+1 => i++=1 değerini alıyor. “i++ değeri 10′ dan küçük mü?” sorgusu yapılıyor. i++<10 yani 1<10 olduğu için program döngü gövdesi içerisine giriyor. 1: C Programlama Dili yazarak tekrar while koşulunun içine giriyor. Tekrar i++ ile i değeri 1 artıyor ve i++ 2 değerini alıyor. “i++ değeri 10′ dan küçük mü?” sorgusu yapılıyor. Döngüde i değeri 9 olana kadar yineleniyor. i++ değeri i++=9+1 => i++=10 olunca “i++ değeri 10′ dan küçük mü?” sorgusu tekrar yapılıyor. i++ değeri 10′dan küçük olmadığı için döngüden çıkıp program sonlandırılıyor.

Örnek : 1′den 100′e kadar olan sayıların toplamı.

1. i =1

2. j = 0

3. i < 101 olduğu sürece

->3.1 j = j + i

->3.2 i = i + 1

4. Toplam j ‘ yi yaz

DO – WHILE DEYİMİ:

do {

komut(lar)

} while( koşul );

Bir koşul doğru olana kadar döngü yürütülür.

Mantıksal ifade doğru olduğu sürece döngü tekrar edilir. Yanlış olduğunda while sözcüğünden sonraki deyim yürütülür.

do-while ile while arasındaki fark ise; while döngülerinde, döngü gövdesi içerisindeki işlem yapılmadan önce, verilen koşul kontrol edilir. Şayet koşul sağlanmıyorsa, while döngüsünün hiç çalışmama ihtimali de bulunmaktadır. do-while döngülerindeyse, durum farklıdır. İlk çalışmada koşul kontrolü yapılmaz. Yani koşul while ile sonda kontrol edilir. Dolayısıyla, koşul ne olursa olsun, döngünüz -en azından bir kere- çalışacaktır.

Örnek : 5 sayısı girene kadar oku

Şimdi do-while ile 10 kere C programlama dili yazdıralım;

FOR DEYİMİ:

for( ilk_deger_atama; koşul; arttırma_azaltma ){ komut(lar) }

While ve do-while döngüsü dışında kullanabileceğimiz bir başka döngü çeşitimiz de for döngüsüdür. For döngüsü, diğer döngülerden farklı olarak; tekrarlamalı yapılarda daha çok kullanılmaktadır.

for( ilk_deger_atama; koşul; arttırma_azaltma )—> Döngünün ilk adımında ilk_değer_atama ifadesi yürütülür(Başlangıç adımı).Koşul sağlandığı müddetçe ifade yürütülür(Bitiş koşulu). Döngünün her adımında arttırma_azaltma işlemi gerçekleşir(artış veya azalış miktarı).

for (i = 1; i < 5; i++)

printf(“%d “,i);

ilk_deger_atama; koşul; arttırma_azaltma ifadeleri seçimliktir. Koşul ifadesi belirtilmez ise herzamandoğru olduğu ( == 1 ) kabul edilir. Yani sonsuz döngü oluşur.

for (i = 1; ; i++)

printf(“%d “,i);

Şimdi bir örnekle programı açıklamaya çalışalım:

i değişkenini integer(tam sayı) olarak tanımlıyoruz. For döngüsüne girerek programımız ilerliyor. ilk değer olarak i=0 alınıyor. Koşul kontrol ediliyor. i<10 mu? i değeri 10′dan küçük olduğu için koşul sağlanıyor (koşul==1).programımız alttaki satırda printf ile akrana çıktı olarak 1: C programlama dili yazıyor. Eğer i+1 yerine i yazarsak o zaman %2d yerinde 0: C Programlama dili yazacaktı. Bunun sebebi i değerine başlangıçta 0 atamamızdır. i değeri döngü gövdesinde 1 kez işlemleri tamamladıktan sonra 1 arttıyor. i değerimiz şimdi 1 oldu(i++, i=0+1 olduğundan i=1 değerini alır). Tekrar koşula bakıyor. i<10 mu? 1<10 olduğu için tekrar program ilerliyerek döngü gövdesindeki işlemleri yapıyor. Bu işlem döngü değerimiz i=10 olana kadar sürüyor. i=10 için koşul(i<10) sağlanmadığından program döngü gövdesinden çıkarak sonraki adımları uyguluyor.

Aşağıdaki çeşitli örnekleri dikkatli bir şekilde incelersek döngü konusunu daha iyi bir şekilde anlıyabiliriz.

ÖRNEK: while döngüsüyle 1 ile 10 arasindaki sayilari ekrana yazar.

 

ÖRNEK: while döngüsüyle Kullanıcının girdiği değerin faktöriyelini hesaplama.

ÖRNEK: while döngüsüyle sıfırdan kullanıcının girdiği değere kadar toplayan program. ÖRNEK: while döngüsüyle sıfırdan kullanıcının girdiği değere kadar karelerini toplayan program. ÖRNEK: do_while Kullanıcının girdiği sayıda merhaba dünya yazılması. ÖRNEK: do_while Kullanıcının girdiği sayıların toplamı. ÖRNEK: for döngüsü Klavyeden girilen n adet sayıdan tek olan sayıların çarpımını, çift olanların toplamını bulan programın hazırlanması. ÖRNEK: for döngüsü Kullanıcının istediği kadar Merhaba Dünya yazan program. ÖRNEK: for döngüsü Kullanıcının girdiği sayının asal olup olmadığını kontrol eden program. ÖRNEK: for döngüsü Klavyeden girilen sayının basamak sayısını bulan program. ÖRNEK: for döngüsü çarpım tablosu.