C#, Vitrin

Rekürsif Fonksiyonlar

Rekürsif foksiyonların bir diğer adı özyinelemeli fonksiyondur. Normal olarak herhangi bir döngü ile yapılabilecek bir işi rekürsif fonksiyonlarla da yapabiliriz. Ancak kullanım alanları daha çok veri yapıları alanındadır. Ağaç, graf, vb. veriyapıları ile çalışırken rekürsif fonksiyonlar hayati öneme sahiptir.

Bir fonksiyonun içerisinden başka isimli bir fonksiyonu çağırabilirsiniz. Bu genelde karşılaştığımız kullanım şeklidir. Ancak bir fonksiyonun içerisinden yine kendisini çağırırsak buna rekürsif fonksiyon(öz yinelemeli, kendini çağıran) diyoruz.

Rekürsif fonksiyonlarda önemli bir hususta öz yinelemenin ne zaman biteceğidir. Dikkat edilmezse sonsuza kadar devam edebilirsiniz 🙂

Aşağıda örnek olarak faktöriyel hesaplaması yapan programın önce for döngüsü ile ardından da rekürsif fonksiyon kullanılarak yazılmış hali mevcuttur.

for döngüsü ile faktöriyel hesaplama programı

static void Main(string[] args)
        {
            Console.Write("Faktoriyeli alınacak sayıyı giriniz :");
            int sayi = int.Parse(Console.ReadLine());
            int sayac;
            int sonuc = 1;
            int sayi2 = sayi;
            
            for (sayac = 1; sayac <= sayi; sayac++)
            {
                sonuc = sonuc * sayi2;
                sayi2 = sayi2 - 1; // sayi2--;    sayi2 -= 1;
            }

            Console.WriteLine("Sonuc" + sonuc);
            Console.ReadKey();
        }

rekürsif fonksiyonlar ile faktöriyel hesaplama programı

static void Main(string[] args)
        {
            
            Console.Write("Faktoriyeli alınacak sayıyı giriniz :");
            int sayi = int.Parse(Console.ReadLine());
            int sonuc = faktoriyel(sayi);
            Console.WriteLine("Sonuç :" + sonuc);
            Console.ReadKey();
        }

        static int faktoriyel(int gelenSayi)
        {
            if (gelenSayi <= 1)
                return 1;
            else
                return gelenSayi * faktoriyel(gelenSayi - 1);
        }

Bir cevap yazın