08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

Yukarıdaki main işlevinde bir sonsuz döngü oluşturuluyor. Döngünün her turunda getval<br />

isimli işlevin geri dönüş değeri val değişkeninde saklanıyor. Eğer val değişkenine atanan<br />

değer 0 ise break deyimiyle döngüden çıkılıyor. Daha sonra yer alan if deyimi ile val<br />

değerinin asal olup olmadığı sınanıyor. val'e atanan değer asal ise, döngünün kalan kısmı<br />

yürütülmüyor, continue deyimiyle döngünün bir sonraki turuna geçiliyor.<br />

continue deyimi, özellikle döngü içinde uzun if deyimleri olduğunda, okunabilirliği<br />

artırmak amacıyla kullanılır.<br />

while (k++ < 100) {<br />

ch = getch();<br />

if (!isspace(ch)) {<br />

/* deyimler */<br />

}<br />

}<br />

Yukarıdaki yazılan while döngüsü içinde, klavyeden getch işlevi ile ch değişkenine bir<br />

karakterin kod numarası alınıyor. Klavyeden alınan karakter bir boşluk karakteri değilse<br />

deyimlerin yürütülmesi isteniyor. Yukarıdaki kod parçasının okunabilirliği, continue<br />

deyiminin kullanılmasıyla artırılabilir:<br />

while (k++ < 100) {<br />

ch = getch();<br />

if (isspace(ch))<br />

continue;<br />

/* deyimler */<br />

}<br />

Bazı programcılar da continue deyimini döngü gövdesinde yer alacak bir boş deyime<br />

seçenek olarak kullanırlar:<br />

while (i++ < 100)<br />

continue;<br />

continue deyimi yalnızca bir döngü deyiminin gövdesinde kullanılabilir. continue<br />

deyiminin, döngü dışında bir yerde kullanılması geçerli değildir.<br />

Sık Yapılan Hatalar<br />

while döngü deyiminin gövdesinin yanlışlıkla boş deyim yapılması sık yapılan bir hatadır:<br />

#include <br />

int main()<br />

{<br />

int i = 10;<br />

}<br />

while (--i > 0); /* burada bir boş deyim var */<br />

printf("%d\n", i);<br />

return 0;<br />

Yukarıdaki döngü while ayracı içindeki ifadenin değeri 0 olana kadar döner. printf çağrısı<br />

döngü deyiminin gövdesinde değildir. while ayracını izleyen sonlandırıcı atom, döngünün<br />

gövdesini oluşturan deyim olarak ele alınır. Döngüden çıkıldığında ekrana 0 değeri yazılır.<br />

Eğer bir yanlışlık sonucu değil de, bilinçli olarak while döngüsünün gövdesinde boş deyim<br />

(null statement) bulunması isteniyorsa, okunabilirlik açısından bu boş deyim, while<br />

ayracından hemen sonra değil, alt satırda bir tab içeriden yazılmalıdır.<br />

141/529

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!