Я нашел этот пример рекурсии онлайн, но я не понимаю, что происходит в нем.Как работает метод рекурсии?
public class MysteryClass {
public static void mystery(int n) {
if (n > 0) {
mystery(n-1);
System.out.println(n * 4);
mystery(n-1);
}
}
public static void main(String[] args) {
MysteryClass.mystery(2);
}
}
выход
4
8
4
То, что я понимаю, что
- 2 больше, чем 0
- 2 - 1 = 1
- 1 больше, чем 0
- 1 - 1 = 0
- 0 не больше чем 0
- Теперь мы переходим к этой линии:
System.out.println(n * 4);
- 1 * 4 = 4
- 2 * 4 = 8
- Вот я не понимаю, почему я получаю еще один «4 "на выходе
Что происходит на шаге 9?
Я использовал отладчик, но все еще не понимаю.
кулак все удалить последнюю «тайну (п-1) ;» –
спасибо за ответ, но почему я должен его удалить? –
Потому что он выполнит печать для следующего параметра в следующем порядке: -> '1,2,1' – SomeJavaGuy