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

if (x) {<br />

deyim1;<br />

deyim2;<br />

/***/<br />

}<br />

Yukarıdaki yapıyla aşağıdaki yapı eşdeğerdir:<br />

if (x != 0) {<br />

deyim1;<br />

deyim2;<br />

}<br />

Aşağıdaki örneği inceleyin :<br />

if (!x) {<br />

deyim1;<br />

deyim2;<br />

}<br />

Bu if deyiminde ise ancak x değişkeninin değerinin 0 olması durumunda deyim1 ve<br />

deyim2 yürütülür.<br />

Yine yukarıdaki yapıyla aşağıdaki yapı eşdeğerdir:<br />

if (x == 0) {<br />

deyim1;<br />

deyim2;<br />

}<br />

Koşul İfadesinde Atama İşlecinin Kullanılması<br />

if deyiminin koşul ifadesinde atama işleci sıklıkla kullanılır. Böylece, atama işlecinin<br />

ürettiği değerden faydalanılır: Aşağıdaki kod parçasını inceleyin:<br />

if ((x = getval()) > 5)<br />

func1(x);<br />

else<br />

func2(x);<br />

if deyiminin koşul ifadesinde ise, çağrılan getval işlevinin geri dönüş değeri, x değişkenine<br />

aktarılıyor. Atama işlecinin ürettiği değerin nesneye atanan değer olduğunu anımsayın.<br />

Atama işleci ile oluşturulan ifadenin, öncelik ayracı içine alındığını görüyorsunuz. Bu<br />

durumda hem getval işlevinin geri dönüş değeri x değişkenine aktarılıyor hem de işlevin<br />

geri dönüş değerinin 5'ten büyük olup olmadığı sorgulanıyor. Öncelik ayracı<br />

kullanılmasaydı getval işlevinin geri dönüş değerinin 5'ten büyük olup olmamasına göre x<br />

değişkenine 0 ya da 1 değeri atanırdı. Bu durumda da ya func1 işlevi 1 değeriyle ya da<br />

func2 işlevi 0 değeriyle çağrılırdı. Deyim aşağıdaki gibi de yazılabilirdi, değil mi?<br />

x = getval();<br />

if (x > 5)<br />

func1(x);<br />

else<br />

func2(x);<br />

Ancak kalıp kod, daha karmaşık deyimlerin yazılmasında kolaylık sağlar. Aşağıdaki if<br />

deyiminin nasıl yürütüleceğini düşünün. "Mantıksal ve" işlecinin birinci kısmının, daha<br />

önce ele alınmasının, yani "kısa devre" davranışının güvence altında olduğunu anımsayın.<br />

105/529

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

Saved successfully!

Ooh no, something went wrong!