Хотя я думаю, что у меня есть четкое понимание разрешения стеков в пустых методах, методы возврата действительно портят мое понимание стеков.Следующий метод особенно смущает меня, так как я думал, что он вернет 0, но вместо этого вернет 12.
public static int mystery(int n) { // where the method call is mystery(7)
n--; // since n is decremented before the first
// recursive method, the first stack is method(6)
if(n > 0) // base case
mystery(n);
return n * 2; // 0 * 2 = 0?
}
Мой вопрос заключается в том, почему метод выводит 12, когда mystery (7), если 0 - это последнее значение, которое будет помещено в стек.Разве этот метод все еще не следует за LIFO?