这个JAVA的递归小问题,为什么输出的是 0 1 2 3按我理解输出的应该是 0

这个JAVA的递归小问题,为什么输出的是 0 1 2 3按我理解输出的应该是 0 public class diguitest {

public static void f(int n)
{
if(n>0)
f(n-1);
System.out.println(n);
}
public static void main(String[] args)
{
f(3);
}
}

你少了else,所以每次递归都会执行到System.out.println(n);

应该这么写:

public static void f(int n) {
    if (n > 0) {
        f(n - 1);
    } else {
        System.out.println(n);
    }
}

写java代码最好规范一点,if-else不要省略大括号,会影响可读性,在大公司都不允许这么写的

温馨提示:答案为网友推荐,仅供参考
相似回答