C'de döngüler

Bu konuyu okuyanlar

NeverTellLie

Öğrenci
Katılım
14 Nisan 2017
Mesajlar
56
Reaksiyon puanı
2
Puanları
8
Yaş
28
Selamlar. :):) Kitapta gördüğüm örnek ile ilgili kafama yatmayan bir şeyler vardı da buradan yardım almak istedim. 32.png Kitapta do-while döngüsü ile ilgili böyle bir örnek vardı sayaç değişkenlerinin char tipinden olabileceğini gösteren bir örnekmiş. Benim anlamadığım nokta şurası şimdi do'daki deyimler çalıştı sonra while'a geçicez while'a geçmeden ch 1 arttı ve while'a geçtik ama while'da çalıştırılabilecek deyim yok.Fakat program çalışıyor while'da deyim yok iken döngü nasıl olabiliyor? Açıklarsanız sevinirim:rolleyes:
 

kmurat

Müdavim
Katılım
8 Şubat 2014
Mesajlar
8,488
Çözümler
3
Reaksiyon puanı
3,711
Puanları
113
"while" döngüsü şart koşuyor. Karakter değeri "z" olana kadar işlemn sürdürülebilmesini sağlıyor.
 

NeverTellLie

Öğrenci
Katılım
14 Nisan 2017
Mesajlar
56
Reaksiyon puanı
2
Puanları
8
Yaş
28
Şart koşuyor ancak bloğunun içinde çalıştırabileceği deyim yok.Yani oradaki işlevi ne olmuş oluyor while'in orayı anlamadım
 

NeverTellLie

Öğrenci
Katılım
14 Nisan 2017
Mesajlar
56
Reaksiyon puanı
2
Puanları
8
Yaş
28
Yani şöyle mi do'daki deyimler bir kez yazdırılıyor zaten sonra while'daki şart sağlandığı için tekrar do'ya dönüyor bu while'in false olmasına kadar devam ediyor.Eğer böyleyse neden tekrar do'ya dönülüyor while'ın içinde deyim olsaydı ne olacaktı yani gördüğüm örneklerin hepsinde while'in içinde deyimler var ve while onları çalıştırıyor burada ise while bloğunun dışındaki bir yer çalışıyor.Neden böyle peki?
 

NeverTellLie

Öğrenci
Katılım
14 Nisan 2017
Mesajlar
56
Reaksiyon puanı
2
Puanları
8
Yaş
28
Yani şöyle mi do'daki deyimler bir kez yazdırılıyor zaten sonra while'daki şart sağlandığı için tekrar do'ya dönüyor bu while'in false olmasına kadar devam ediyor.Eğer böyleyse neden tekrar do'ya dönülüyor while'ın içinde deyim olsaydı ne olacaktı yani gördüğüm örneklerin hepsinde while'in içinde deyimler var ve while onları çalıştırıyor burada ise while bloğunun dışındaki bir yer çalışıyor.Neden böyle peki?
 

Ben Kenobi

Müdavim
Katılım
6 Kasım 2011
Mesajlar
7,336
Reaksiyon puanı
3,155
Puanları
113
döngü öğrenmeye for döngüsünden başlayın.
temel döngü for döngüsüdür.
while döngüsü for döngüsü ile temelde aynıdır ancak grameri farklıdır.
do while döngüsünün for döngüsünden farkı ise koşul hiç gerçekleşmese bile döngüdeki komutlar bir kez çalışır zaten bunu belirtmek için döngü koşulu sona yazılır ve noktalı virgül konur.
 

NeverTellLie

Öğrenci
Katılım
14 Nisan 2017
Mesajlar
56
Reaksiyon puanı
2
Puanları
8
Yaş
28
For'u da öğrendim gibi bir şey zaten.Dediğiniz ayrıntıyı kaçırmışım:oops:.Yani while'ın içinde deyim olmayacaksa ve döngü koşulu görevini üstlenecekse bizim noktalı virgül koymamız gerekiyor değil mi hocam?:D
 

Ben Kenobi

Müdavim
Katılım
6 Kasım 2011
Mesajlar
7,336
Reaksiyon puanı
3,155
Puanları
113
sadece do-while döngüsü grameri gereği noktalı virgül barındırır, normal while döngüsünde noktalı virgül yoktur.
Bunun açıklaması var istersen anlatırım ama kafaya takılacak birşey değil.
MEL diliyle program yazarken do-while olmamasının acısını çok çektim çünkü birkaç yerde döngü yanlış olsa bile en az bir kez çalışması gereken durumla karşılaştım, do-while olmayınca mecburen şunu yaptım.
Kod:
kod1();
kod2();
kod3();
kod4();
kod5();
while(statement)
{
    kod1();
    kod2();
    kod3();
    kod4();
    kod5();
}
Gördüğün gibi aynı kodları yukarıya bir kez daha yazmak zorunda kaldık, do-while bunu engelliyor, diğer döngülerden farkı budur.
for döngüsü ile while farkı ise sadece gramerdir yani eğer döngüde kullanacağın değişken daha önce tanımlanmışsa veya döngüde kullanacağın değişken artışı veya azalışı bizzat döngü içerisinde yapılıyorsa veya bu ikisi birden varsa misal for şu şekilde yazılmalı
Kod:
for(;statement;)
Bu da çirkin bir kod oluşturacağından while ile yapılınca daha güzel durur.
Kod:
while(statement)
 

NeverTellLie

Öğrenci
Katılım
14 Nisan 2017
Mesajlar
56
Reaksiyon puanı
2
Puanları
8
Yaş
28
Enfes bir anlatım olmuş çok teşekkürler:DŞu an konuyu daha iyi kavradığımı düşünüyorum.:)
 

Son mesajlar

Üst