Допустим, у вас есть метод:Как обрабатывать действие закрытия рекурсии в Java?
Object recursiveMethod() {
// do some things to an object.
Object obj = new Object();
if (test fails) {
recursiveMethod(); // do the function again until it fails.
}
System.out.println("Returning object");
return obj;
}
То, что я заметил, что функция ставится в очередь, если это не удается, а затем извлекается из стека после. Так что, если он не в 5 раз он будет печатать:
Returning object //success
Returning object //failure
Returning object //failure
Returning object //failure
Returning object //failure
Returning object //failure
Что это лучший способ иметь Returning object
заявление печать только один раз?
Вот некоторые исследования, которые я сделал на рекурсии: http://www.toves.org/books/java/ch17-recur/
Используйте метод _wrapping_, который вызывает рекурсивный метод. Затем поместите вывод консоли в метод упаковки и удалите его из рекурсивного. – Seelenvirtuose
Это сработает, но я думаю, что объяснение Джона Кугельмана более изящно. – and0rsk
Поместите 'else' перед строкой, которая его распечатает. – EJP