8.4 void Fonksiyonlar
8.4 void Fonksiyonlar
Bir fonksiyonun her zaman geri dönüş değerinin olması gerekmez. Bu durumda return deyimi kullanılmayabilir. Eğer bu anahtar kelime yoksa, fonksiyon ana bloğu bitince kendiliğinden sonlanır. Böyle fonksiyonların tipi void (boş, hükümsüz) olarak belirtilmelidir. Bu tip fonksiyonlar başka bir yerde kullanılırken, herhangi bir değişkene atanması söz konusu değildir, çünkü geri dönüş değeri yoktur. Ancak, void fonksiyonlara parametre aktarımı yapmak mümkündür.
Program 8.3’de void fonksiyona örnek olarak bankamatik fonksiyonu ve kullanımı gösterilmiştir. Bu fonksiyon kendisine parametre olarak gelen YTL cinsinden para miktarını 20, 10 ve 5 YTL’lik birimler halinde hesaplar. Girilen miktar 5 YTL’nin bir katı değilse, ekrana uygun bir mesaj gönderir. bankamatik fonksiyonu bir dizi hesap yapmasına rağmen geriye hiç bir değer göndermez.
Program 8.3: void tipinde bir fonksiyon kullanımı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/* 08prg03.c: Basit bankamatik simulasyonu. İstenen para miktarını 20, 10 ve 5'lik birimlere böler ve sonucu ekrana gösterir. */ #include <stdio.h> void bankamatik(int para) { int a,yirmilik,onluk,beslik; a = para; if(a%5==0) { yirmilik = a/20; a -= yirmilik*20; onluk = a/10; a -= onluk*10; beslik = a/5; a -= beslik*5; printf("\nYirmilik = %d",yirmilik); printf("\nOnluk = %d",onluk); printf("\nBeslik = %d\n",beslik); } else printf("Girilen miktar 5 YTL ve katlari olmali!\a\n"); /* return deyimi yok !*/ } int main() { int miktar; printf("Cekilecek para miktari (YTL) = "); scanf("%d",&miktar); bankamatik(miktar); /* fonksiyon bir değişkene atanmamış ! */ retrun 0; } |
ÇIKTI
1 2 3 4 5 |
Cekilecek para miktari = 135 Yirmilik = 6 Onluk = 1 Beslik = 1 |
ÇIKTI
1 2 |
Cekilecek para miktari = 456 Girilen miktar 5 YTL ve katlari olmali! |
void anahtar sözcüğü C’ye sonradan dahil edilmiştir. Standart C’de (ANSI C) bu deyimin kullanılması zorunlu değildir. Ancak bu deyim okunabilirliği arttırmaktadır. Örneğin:
1 2 3 4 |
void bankamatik(int para) bankamatik(int para) { { ... ... } } |
şeklindeki kullanımlar geçerli ve aynı anlamdadır.
Başka bir void fonksiyon örneği Program 8.4’de verilmiştir. Programdaki kutu_ciz fonksiyonu, iki for döngüsü kullanarak 'X' karakterlerinden oluşan basit bir kutu çizimi yapar. Programda de sadece 18. satır defalarca işleme konur. Program çalıştırıldığında 8*35=280 adet 'X' karakteri ekrana bastırılır. İnceleyiniz.
Program 8.4: basit kutu çizen fonksiyon
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/* 08prg04.c: Basit bir kutu çizen fonksiyon */ #include <stdio.h> void kutu_ciz( int satir, int sutun ) { int sut; for ( ; satir > 0; satir--) { for (sut = sutun; sut > 0; sut--) printf("X"); printf("\n"); } } int main(){ kutu_ciz(8,35); return 0; } |
ÇIKTI
1 2 3 4 5 6 7 8 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |