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 />

n Kez Dönen while Döngüsü<br />

n bir pozitif tamsayı olmak üzere, n defa dönen bir while döngüsü oluşturmak için<br />

while (n-- > 0)<br />

ya da<br />

while (n--)<br />

kod kalıpları kullanılabilir. Aşağıda, bir tamsayının belirli bir üssünü hesaplayan power<br />

isimli bir işlev yazılıyor. İşlevi inceleyin:<br />

int power(int base, int exp)<br />

{<br />

int result = 1;<br />

while (exp--)<br />

result *= base;<br />

}<br />

return result;<br />

İşlev içinde yazılan while döngüsü, exp değişkeninin değeri kadar döner, değil mi? Bu<br />

durumda base değişkeni, exp kez kendisiyle çarpılmış olur.<br />

Döngü Gövdesinin Boş Deyim Olması<br />

Bazen döngü gövdesi bilinçli bir şekilde boş deyim yapılır. Okunabilirlik açısından bu<br />

durumda boş deyimin normal bir deyim gibi tablama kuralına uygun olarak yazılması<br />

tavsiye edilir. Aşağıdaki programı inceleyin:<br />

#include <br />

#include <br />

#include <br />

int main()<br />

{<br />

int ch;<br />

printf("Evet mi Hayir mi? [e] [h] : ");<br />

while ((ch = toupper(getch())) != 'E' && ch != 'H')<br />

;<br />

if (ch == 'E')<br />

printf("evet dediniz!\n");<br />

else<br />

printf("hayır dediniz!\n");<br />

}<br />

return 0;<br />

Yukarıdaki main işlevi içinde yazılan while döngüsü ile, kullanıcı klavyeden 'e', 'E', 'h',<br />

'H' harflerinden birini girmeye zorlanıyor. Döngüyü dikkatli bir şekilde inceleyin.<br />

Döngünün kontrol ifadesi içinde "mantıksal ve" işleci "&&" kullanılıyor. "Mantıksal ve"<br />

işlecinin sol teriminin daha önce yapılmasının güvence altında olduğunu anımsayın.<br />

Standart olmayan getch işlevi ile, klavyeden bir karakter alınıyor. Alınan karakterin sıra<br />

numarası, yani getch işlevinin geri dönüş değeri, standart toupper işlevine argüman<br />

olarak gönderiliyor. Böylece eğer klavyeden küçük harf karakteri girilmişse büyük harfe<br />

dönüştürülmüş olur. toupper işlevinin geri dönüş değeri ch değişkenine atanıyor. Ayraç<br />

143/529

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

Saved successfully!

Ooh no, something went wrong!