Я изучаю Java по книге и натыкаюсь на главу о рекурсии на примере факториала.
//A simple example of recursion
package tutorials;
class Factorial {
// this is a recursive method
int fact (int n) {
int result;
if(n==1) return 1;
result = fact(n - 1) * n;
return result;
}
}
class Recursion {
public static void main(String args[]) {
Factorial f = new Factorial();
System.out.println("Factorial of 3 is " + f.fact(3));
System.out.println("Factorial of 4 is " + f.fact(4));
System.out.println("Factorial of 5 is " + f.fact(5));
}
}
Результатом, который дает этот фрагмент кода, является «Факториал 3 равен 6» и «Факториал 4 равен 24».
Чего я не понимаю, так это того, что происходит в классе Factorial и почему *n не вычисляется сразу. Книга не очень хорошо объясняет это, поэтому я подумал, что попрошу помощи у опытных программистов.