Что такое рекурсия в Java?
Рекурсия - это средство, которое позволяет методу вызывать самого себя. Такой метод называется рекурсивным.
Когда рекурсивный метод вызывает самого себя, новым локальным переменным и параметрам выделяется место в стеке и код метода выполняется с этими новыми исходными значениями. При каждом возврате из вызова рекурсивного метода прежние локальные переменные и параметры удаляются из стека, а выполнение продолжается с точки вызова в самом методе.
Рекурсию можно сравнить с подзорной трубой, которую раскладывают до нужного состояния, а потом складывают обратно.
В следующем примере показана реализация подсчета факториала с помощью рекурсии на языке Java. Метод factorial()
рекурсивно вызывает самого себя. В рекурсивном методе обязательно задавать точку возврата - условие при котором прекращается рекурсивный вызов метода. Если этого не сделать программа зациклится. В методе factorial()
- это проверка на 1.
public class RecursionExample {
static int factorial(int n) {
int result;
if (n < 2) {
return 1;
}
result = factorial(n - 1) * n;
return result;
}
public static void main(String[] args) {
System.out.println("Факториал 3: " + factorial(3));
System.out.println("Факториал 4: " + factorial(4));
System.out.println("Факториал 5: " + factorial(5));
}
}
Курс 'Java для начинающих' на Udemy
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.