Другой пример рекурсивной функции — печать всех неотрицательных чётных чисел не больше указанного :
private void printEvenDigits(int ceil) {
if (ceil = 0) {
System.out.println(ceil);
return;
}
if (ceil % 2 == 0) {
System.out.println(ceil);
}
printEvenDigits(ceil-1);
}
Практически все задачи, решаемые с помощью итераций (циклов типа for-each
), можно решить и рекурсивно. Преимущество рекурсии в читаемости и простоте написания. Недостатком является снижение производительности и повышение потребляемой памяти, переполнение стека вызовов. Это, как правило, происходит при неразумном использовании рекурсии.