递归简单示例:
def test1(n:Int){
if(n>2){
test1(n-1)
}
println("n="+n)
}
调用结果:
底层机制:
如图所示:
在栈中开辟一个函数栈test(4)
运行到test(3)时,在栈中开辟一个新的函数栈test(3),
运行到test(2)时,在栈中开辟一个新的函数栈test(2),
当n=2时,输出n=2,此时test(2)被销毁,回退到test(3)
输出n=3,test(3)被销毁,回退到test(4)
输出n=4,test(4)被销毁
递归的重要原则
- 程序执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)
- 函数的局部变量是独立的,不会相互影响
- 递归必须向