EMZETT.
Увійти

Рекурсія (recursion)

Коротко: Метод, що викликає сам себе, щоб розбити задачу на менші підзадачі того самого роду, — завжди потрібен базовий випадок, інакше працює нескінченно.

Докладніше: Кожен рекурсивний виклик кладе новий запис у стек викликів; без умови виходу (базового випадку) це зрештою веде до StackOverflowError.

int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

Подробиці

Див. також: методи, цикли, алгоритми