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

Yukarıdaki örnekte case ifadesi olarak kullanılan ADDREC, DELREC, FINDREC daha önce<br />

tanımlanmış simgesel değişmezlerdir. Her bir case için yapılan işlemler, birer işlev içinde<br />

sarmalanıyor.<br />

char ch = getch();<br />

switch (ch) {<br />

case 'E' : deyim1; break;<br />

case 'H' : deyim2; break;<br />

default : deyim3;<br />

}<br />

Bir switch deyiminde aynı sayısal değere sahip birden fazla case ifadesi olamaz. Bu<br />

durum derleme zamanında hata oluşturur.<br />

switch deyimi, başka bir switch deyiminin ya da bir döngü deyiminin gövdesini<br />

oluşturabilir:<br />

#include <br />

#include <br />

#define ESC 0X1B<br />

int main()<br />

{<br />

int ch;<br />

}<br />

while ((ch = getch()) != ESC)<br />

switch (rand() % 7 + 1) {<br />

case 1: printf("Pazartesi\n"); break;<br />

case 2: printf("Sali\n"); break;<br />

case 3: printf("Carsamba\n"); break;<br />

case 4: printf("Persembe\n"); break;<br />

case 5: printf("Cuma\n"); break;<br />

case 6: printf("Cumartesi\n"); break;<br />

case 7: printf("Pazar\n");<br />

}<br />

return 0;<br />

Yukarıdaki main işlevinde switch deyimi, dıştaki while döngüsünün gövdesini oluşturuyor.<br />

switch deyimi, döngü gövdesindeki tek bir deyim olduğundan, dıştaki while döngüsünün<br />

bloklanmasına gerek yoktur. Tabi while döngüsünün bloklanması bir hataya neden olmaz.<br />

Ancak case ifadeleri içinde yer alan break deyimiyle yalnızca switch deyiminden çıkılır.<br />

while döngüsünün de dışına çıkmak için case ifadesi içinde goto deyimi kullanılabilir.<br />

Şimdi de aşağıdaki programı inceleyin. Programda display_date isimli bir işlev<br />

tanımlanıyor. İşlev gün, ay ve yıl değeri olarak aldığı bir tarih bilgisini İngilizce olarak<br />

aşağıdaki formatta ekrana yazdırıyor:<br />

5th Jan 1998<br />

include <br />

void display_date(int day, int month, int year)<br />

{<br />

printf("%d", day);<br />

182/529

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

Saved successfully!

Ooh no, something went wrong!