08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

else if Merdiveni<br />

Aşağıdaki if deyimlerini inceleyin:<br />

Eğer bir karşılaştırmanın doğru olarak sonuçlanması durumunda yapılan diğer<br />

karşılaştırmaların doğru olması söz konusu değilse, bu tür karşılaştırmalara ayrık<br />

karşılaştırma denir. Ayrık karşılaştırmalarda, if deyimlerinin ayrı ayrı kullanılması kötü<br />

tekniktir:<br />

if (m == 1)<br />

printf("Ocak\n");<br />

if (m == 2)<br />

printf(Şubat\n");<br />

if (m == 3)<br />

printf("Mart\n");<br />

/***/<br />

if (m == 12)<br />

printf("Aralık\n");<br />

Yukarıdaki örnekte m değişkeninin değerinin 1 olduğunu düşünün. Bu durumda ekrana<br />

Ocak yazısı yazdırılır. Fakat daha sonra yer alan if deyimleriyle m değişkeninin sırasıyla 2,<br />

3, ... 12'ye eşit olup olmadığı ayrı ayrı sınanır. Ama x değişkeni 1 değerine sahip<br />

olduğundan, bütün diğer if deyimleri içindeki kontrol ifadelerinin yanlış olarak<br />

değerlendirileceği bellidir. Bu durumda birinci if deyiminden sonraki bütün if deyimleri<br />

gereksiz yere yürütülmüş olur. Aynı zamanda kodun okunabilirliği de bozulur.<br />

Ayrık karşılaştırmalarda else if merdivenleri kullanılmalıdır:<br />

if (ifade1)<br />

deyim1;<br />

else<br />

if (ifade2)<br />

deyim2;<br />

else<br />

if (ifade3)<br />

deyim3;<br />

else<br />

if (ifade4)<br />

deyim4;<br />

else<br />

deyim5;<br />

Bu yapıda, herhangi bir if deyiminin koşul ifadesi doğru olarak değerlendirilirse programın<br />

akışı hiçbir zaman başka bir if deyimine gelmez. Bu yapıya, else if merdiveni (cascaded if<br />

/ else if ladder) denir. else if merdivenlerinin yukarıdaki biçimde yazılışı, özellikle uzun<br />

else if merdivenlerinde okunabilirliği bozduğu için aşağıdaki yazım biçimi, okunabilirlik<br />

açısından tercih edilmelidir:<br />

if (ifade1)<br />

deyim1;<br />

else if (ifade2)<br />

deyim2;<br />

else if (ifade3)<br />

deyim3;<br />

else if (ifade4)<br />

deyim4;<br />

else<br />

deyim5;<br />

107/529

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

Saved successfully!

Ooh no, something went wrong!