C de Döngü Kavramı ve Döngüler

Bu başlık kilitlidir. Yeni mesajlar gönderilemez veya mevcut mesajlar düzenlenemez.
LmandrakeL
02-03-2004, 09:41   |  #1  
OP Üye
Teşekkür Sayısı: 0
78 mesaj
Kayıt Tarihi:Kayıt: Şub 2004

C dilinin döngü Yapısı Diğer Hiçbir dilde bulunmayan bir esnekliği kullanıcının imkanına sunmaktadır.

C de Ana 3 döngü bulunmaktadır...

While
Do While
For

Döngülerin ortak özellikleri Kendilerine verilen şartların Sürekli True (yani Sıfır haricinde her değer ) Olduğu sürece döngünün işlemesini sağlamaktır...

örneğin 1 den 100 e kadar olan sayıların toplamını ;

1)
int toplam=0,i;
for(i=1;i<=100;i++)
  {
   toplam +=i;
  }

  printf("%d\n",toplam);

biçiminde for ile bir döngü kurulmakta... Burada ki mantık Derleyici For un parantezleri arasında kalan ortada ki ifadenin sürekli true yani sıfır(0) haricinde bir değer olduğu sürece bunu çalıştır demektir ... Bunu denemek için ortadaki ifadenin yerine 1 (bir) veya farklı bir rakam yazın ve sürekli sonsuz bir döngüye girdiğini görün...

2)
  int i=1,toplam=0;
  while(i<=100)
   {
    toplam +=i;
    i++;
   }
   
    printf("%d\n",i);

Burada eğer döngü içinde i değerini artırmasak döngü sonsuz bir döngüye dönecektir... Unutmayın burada da aynen parantez içindeki değerin True yani 0 (sıfır) haricinde her rakam olduğunda sonsuz bir döngüye girecektir...

Bu yüzden C dilinde Aslında her şey Doğru ve Yanlış kavramına yani 1 ve 0 mantığına göre işler Çünkü Makina 1 ve 0 rakamlarını Yorumlama şansına sahiptir Ve derleyicinin görevide bu Yazılan kodların çevirme işlemini yapmaktır.

Son Düzenleme: LmandrakeL ~ 02 Mart 2004 10:06
hasanyasin
04-03-2004, 04:05   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
1,100 mesaj
Kayıt Tarihi:Kayıt: Oca 2004

Foruma renk kattın LmandrakeL, teşekkürler... Gülümseme
do...while arada kaynamış sanırım. Bununla ilgili bir satırcık bir mesaj yazsam iyi olur diye düşündüm. for ve while döngü yapılarında eğer şartlı ifade yanlış ise, döngü içi ifade hiç çalıştırılmaz. do...while yapısı burada farklılığa sahip ve bloktaki kodun "en az 1 defa" çalışacağını garantiler; zira şart ifadesi döngünün sonunda incelenir.

Bu birinci örnekte, döngüye hiç girilmez ve yazdığımız bu kod, i'yi tanımlayıp ona 5 değerini vermek dışında işlevsizdir:

int i=5;
while (i>5) {
i++;
printf("%d",i);
}

Bir de şuna bakın: Bu örnek de hemen hemen aynı gibi görünüyor; fakat burada döngüye bir kez giriliyor ve şart sağlanmaya başladığı için de, içinden çıkılmaz bir döngüye girmiş oluyoruz. Bu da, i değeri değişken için ayrılmış sınırların dışına taştığı zamana kadar durmaksızın çalışacaktır:

int i=5;
do {
i++;
printf("%d",i);
}
while (i>5);

Tek yaptığımız, while () ifadesinin yerine "do" yazıp, bu ifadeyi de döngü bloğundan hemen sonraya yerleştirmek. İşte 0 ile sonsuz arasındaki fark bundan ibaret... Gülümseme Burada, while'a gelene kadar blok bir kez çalıştırılıyor ve bu blok içinde, 5 olan i'nin değeri 6'ya çıktığı için, while ifadesi de doğrulanıyor... Ne de güzel değil mi?

aragorntheelessar
14-09-2004, 23:46   |  #3  
Yıllanmış Üye
Teşekkür Sayısı: 0
268 mesaj
Kayıt Tarihi:Kayıt: Şub 2004

işte en sevdiğim döngü do...while ne de olsa programıbaşa çevirecek olsam hep yardımıma koşuyor bu döngü:)