C Dilinde “For” Döngüsü (Örneklerle)

Bir işlemi birden çok kez yapmak istediğimizde döngülere başvururuz. Örnek olarak 1’den 1000’e kadar yazmak istediğimizde 1000 kez “printf” kullanmak yerine “for” döngüsünü kullanarak işlemi 2 satırda bitirebiliriz. O zaman “for” döngüsünün genel yapısıyla başlayalım.

for(başlangıç;bitiş;artış miktarı){işlem;
...
işlem;}

İlk olarak 1’den 100’e kadar olan sayıları yazdıracağımız basit bir örnekle genel kullanım mantığı ve şeklini görelim.

int i;
for(i=1;i<=100;i++){
printf("%d\n",i);
}

Örnekte gördüğünüz üzere başlangıç noktamızı “1”, bitiş noktamızı “100” olarak belirledik. Artış miktarımızda 1’er 1’er olarak belirlendi. Eğer artış miktarını farklı bir değer girmek istiyorsanız “i+=2(2’şer 2’şer),i+=3(3’er 3’er)…” şeklinde kullanmamız gerekir. Bu örnekte “i” 1 olarak başlayıp “101” oluncaya kadar her artışta ekrana “i” yi yazma komutunu veriyoruz. Ne zaman i=101 olduğunda belirlediğimiz bitiş çizgisi olan 100’ü geçtiği için döngümüz sonlanıyor ve ekrana “101” çıktısı gelmiyor. “for” döngüsünü ardaşık sayılarla yapılan faktöriyel alma, ardaşık sayılarda toplama vb. gibi işlemlerde de kullanabiliriz. Gelin kullanıcının girdiği sayının faktöriyelini alan bir program yazalım.

int a,b,i;
a=1
printf("Faktoriyel almak istediginiz sayiyi giriniz: ");
scanf("%d",&b);
for(i=1;i<=b;i++){a=a*i;
}
printf("Sonuc: %d",a);

Bu örnekte kullanıcıdan istediği sayıyı alarak aslında döngümüzün bitiş çizgisini istiyoruz. Varsayalım ki kullanıcının girdiği sayı 5 olsun. Döngünün ilk adımı olarak i=1 değerini alır. a=a*i işlemi a=1(a’nın değerini ilk başta 1 olarak atamıştık)*1 den a’mızın değeri 1 olur. İkinci adımda i=2 olur ve a=1*2 işleminden a=2 değerini alır. Üçüncü adımda a=2.3’den 6, dördüncü adımda a=6.4’den 24 ve bitiş çizgisi olan i=5 değerinde a=24.5 işleminde 120 değerini alır ve döngüden çıkarız. Daha sonra gelen “printf(“Sonuc: %d”,a)” kodu ile ekrana a’nın en güncel değerini yani 120’yi ekrana yazdırarak programı başarılı bir şekilde tamamlarız.

Bir cevap yazın

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