Sobes.tech
Junior — Middle

Vysvětlete, jak funguje proces volání funkce sama v sobě a v jakých případech může být užitečný.

sobes.tech AI

Odpověď od AI

Volání funkce uvnitř jejího vlastního těla se nazývá rekurze. V C# to znamená, že metoda volá sama sebe, aby vyřešila úkol tím, že ho rozdělí na jednodušší podúkoly.

Rekurze je užitečná, když se úkol přirozeně dělí na podobné podúkoly, například procházení stromu, výpočet faktoriálu, hledání v grafech.

Příklad výpočtu faktoriálu pomocí rekurze:

int Factorial(int n)
{
    if (n <= 1)
        return 1; // základní případ
    else
        return n * Factorial(n - 1); // rekurzivní volání
}

Je důležité mít základní případ, aby rekurze skončila, jinak dojde k nekonečným voláním a přetečení zásobníku.

Rekurze zjednodušuje kód a činí jej čitelnějším pro úkoly s opakující se strukturou, ale někdy ji lze nahradit iterací pro zvýšení výkonu.