Teşekkür ederim, evet programda hesaplatınca 6 çıkıyor fakat mantığını kavrayamıyorum. Örnek soru olduğu icin mantığını anlayıp sınavda doğrusunu yapma amacındayım. Yazdığım gibi yapınca 7 çıkıyor fakat programlar 63'ü döngüye sokmuyor. Sebebi nedir biliyor musun?
Teşekkür ederim, evet programda hesaplatınca 6 çıkıyor fakat mantığını kavrayamıyorum. Örnek soru olduğu icin mantığını anlayıp sınavda doğrusunu yapma amacındayım. Yazdığım gibi yapınca 7 çıkıyor fakat programlar 63'ü döngüye sokmuyor. Sebebi nedir biliyor musun?
7´nci basamağı da döngü içinde yazdırabilmemiz için döngüye i<=127 veya i<128 koşulunu vermemiz gerekir.
Çünkü döngü sadece i<64 olduğu sürece çalışıyor. i´nin anlık değeri 127 olsa bile döngünün içindeki cout´a girmez.
Döngü dışında bir kez daha cout << i << endl; komutunu verip 127´yi de ekrana bastırabilirsiniz ancak bu doğru cevap olmaz. Çünkü resmini attığınız soru “döngü çalıştığında ekranda toplam kaç adet tek sayı gözükür” diyor. Döngü de i, 64´den küçük olduğu sürece çalıştığı için 63´ü de basar ve döngüyü kapatır.
Haaaa, yani şey mi. 63 olunca tekrar döngüye sokar fakat sonuc 64 den büyük olduğu için döngüye dahil etmez ve en üst değer olarak 63 ü verir. Doğru mu anladım
Haaaa, yani şey mi. 63 olunca tekrar döngüye sokar fakat sonuc 64 den büyük olduğu için döngüye dahil etmez ve en üst değer olarak 63 ü verir. Doğru mu anladım
Evet. Döngünün içindeki blok sadece i<64 koşulu sağlandığı sürece çalışıyor. i, 127 olunca döngünün içine girmez. Döngü kapanır ve sonraki satırlardan devam eder. Ayrıca while döngüsü de böyle çalışır. Yani for döngüsü gibi. Sadece do while döngüsü önce işlemi gerçekleştirip, sonra kontrol ettiğinden onda durum farklıdır. Eğer ileriki sorularda do while ile ilgili soru gelirse bunu unutmayın.