Bir C programı ile karşı karşıya kalındığında programda bol miktarda if ve bol miktarda for komutundan başka birşey olmadığını goreceksiniz. Programlar genellikle bu iki komut arasına serpilmiş işlemler ve cağrılardan oluşur. Tabii sistem programlarında assambly cağrıları da vardır. ama temel hep mantıksallar ve dongurelerdir. Ve bu yapılar tum programlama dillerinde aynıdır. Biz daha onceden bir programlama dili ile haşırneşir olan insanlar olduğumuza gore bu yapıların C dilindeki goruntusune bakmak yetecektir. İşte donguer.
for dongusu en cok karşılaşılan dongudur. yapısı
for(giriş;karşılaştırma;iterasyon)
Şeklindedir. giriş kısmı for dongusu ilk calıştığında bir kere işletilir. genelde bu kısımda bir değişkene değer atanır ve bu daha sonra sayılır. karşılaştırma sıtandart if karşılaştırmaları gibidir. Bu karşılaştırma doğru olduğu muddetce dongu tekrarlanır. iterasyon genelde girişte atanan değişkenin değerini arttırmaya yoneliktir.
for(;

İle sonsuz dongu kurulabilir. basit for programı yazalım;
Kod:
#include ‹stdio.h›int main(void)}
programı ile ekrana 1 den 10 kadar olan sayılar yazılabir. yukardaki program şoyle de yazılabilir.
Kod:
#include ‹stdio.h›int main(void)}
For komutu cok esnektir. Değişik bir ornek yapalım. 1000 den 9999 e kadar olan sayılardan rakkamlarının dorduncu katlarının toplamı kendisi olan sayıları bulalım;
Kod:
#include ‹stdio.h›int main(void) } printf("hesaplama tamamlandı...\n");}
Program yazmak boyle birşey arkadaşlar mantıklı cozumler bulmak; sonuclara bakalım. 1634, 8208, 9474 olacaktır. programı şıklaştıralım.
Kod:
#include ‹stdio.h›int main(void) } } } } printf("hesaplama tamamlandı...\n");}
Bir programı yazmanın milyonlarca yolu vardır. Programcı en işe yararını arar.
while dongusunu ise for dongusunun sadece şartların belirtildiği şekli olarak duşunmek yalnış olmaz. Zaten de oyle. bir ornekte gosterelim;
Kod:
#include ‹stdio.h›int main(void) puts("program sonlandı.");}
do – while dongusunde ise şartın doğruluğu kontrol edilmeksizin bir kere işletilir. ilk işletme sonunda kontrol yapılır.
Kod:
#include ‹stdio.h›int main(void) } while (i!=c); puts("program sonlandı.");}
While komutundan sonra ; geldiğine dikkat edin. Yukarıda break komutunu farketmişsinizdir. Bu komutu daha once switch – case ortamında da gorduk. Burada break donguyu sonlandırmaktadır. yani while komutunun altına bırakır. Eğer dongu for dongusu ise bu sefer for dongusu işletilmez. Dongulerde break gibi işlevi olan bir diğer komut ise continue komutudur. Bu komut dongunun bir sonraki durum icin işletilmesini sağlar ve sadece for dongusunde kullanılabilir. Cunku while dongusunde iterasyon tanımlayan bir kısım yok. Continue komutu for dongusu icin hemen for etiketine yonlenme yapar ve iterasyon kısmında belirtilen işlemi yapar. Biz yukarıda sıklıkla i++ turunden bunu kullanmıştık. Yani bu durumda bir sonraki i değeri icin işlem yapılır. boylece dongu icerisindeki diğer komutlar işletilmez. Brak ve continue işlemi genelde bir if kontrolu sonrasında verilen bir karardır. Yoksa donguye tek başına koyarsanız. Dongunun icindeki diğer komutlar hic işlemeyecektir. Gereksiz kullanım yani.
Goto komutunu BASIC dilinden hatırlarsınız. Bu komut etiket ile belirtilen adrese bir sıcrama yapar. Goto komutu gunumuz yapısal programlama dilleri sayesinde tarih olmuştur denebilir. Programcılar bu komutu pek gerekmedikce kullanmazlar. Ama ben hala kullanıyorum. Bazı durumlarda goto komutu sayesinde sizinde program iskeletiniz hafifleyebilir. Goto komutuyla bir adet dongu kuralım bu dongude olanları for ile yapmak daha kolay gerci ama olsun.
Kod:
#include ‹stdio.h›int main(void) printf("%d\n",t);}
__________________