package com.recursion;
class Test{
public void test(int n) {
if (n > 2) {
test(n - 1);
} else { //唯一区别就是加了else
System.out.println("n=" + n);
}
}
}
public class Recursion {
public static void main(String[] args) {
Test t1 = new Test();
t1.test(4); //尝试输出看看
}
}
代码截图:
运行结果:
尝试自己分析一下⑧,简单来说就是if执行了else就不执行,else执行了说明if也没执行。
3.2 阶乘问题:
源代码:
package com.recursion;
class Test01 {
public int factorial(int n) {
if (n == 1) {
return 1;
} else {
return factorial(n - 1) * n;
}
}
}
public class Factorial {
public static void main(String[] args) {
Test01 test = new Test01();
int ret = test.factorial(5);
System.out.println("ret=" + ret);
}
}