它应该只打印数字:-1
但它正在打印编号:-1 0 1 2
为什么要印刷此系列?
我希望执行只会对System.out.println执行一次。

class MemoryJava {
     public static void main(String[] args){
        decreaseNumberbyOne(2);
    }
    public static void decreaseNumberbyOne(int num){
        if(num >= 0){
            decreaseNumberbyOne(num -1);
        }
        System.out.println("Number:"+num);
    }
}

最佳答案

这是事件的顺序:


致电(2)
致电(1)
致电(0)
致电(-1)
不要呼叫(-2),因为打印-1
返回
打印0
返回
打印1
返回
打印2
返回


这称为递归。

我将显示一个带有else的代码,以帮助您实现所需的输出,但是为此,请看死池的另一个答案。

10-06 01:29