İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C'de döngüler

NeverTellLie11.06.20179 cevap1.874 görüntüleme
2017'den beri56 mesaj
#1
Selamlar. :):) Kitapta gördüğüm örnek ile ilgili kafama yatmayan bir şeyler vardı da buradan yardım almak istedim.32.pngKitapta 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:
Cevaplar
2014'den beri9.359 mesaj
#2
"while" döngüsü şart koşuyor. Karakter değeri "z" olana kadar işlemn sürdürülebilmesini sağlıyor.
NeverTellLie Konuyu açan
2017'den beri56 mesaj
#3
Ş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
2017'den beri31 mesaj
#4
A dan Z ye kadar yazdıracak
NeverTellLie Konuyu açan
2017'den beri56 mesaj
#5
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 Konuyu açan
2017'den beri56 mesaj
#6
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?
2011'den beri7.329 mesaj
#7
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 Konuyu açan
2017'den beri56 mesaj
#8
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
2011'den beri7.329 mesaj
#9
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.
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ı
for(;statement;)

Bu da çirkin bir kod oluşturacağından while ile yapılınca daha güzel durur.
while(statement)
NeverTellLie Konuyu açan
2017'den beri56 mesaj
#10
Enfes bir anlatım olmuş çok teşekkürler:DŞu an konuyu daha iyi kavradığımı düşünüyorum.:)

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.