递归的困惑,求指导

huhui5008 · 2018-11-29 15:50:01 · 777 次点击

为什么当a==1的时候,要跳到上一层的a值呢?

#2
更多评论

压根不是一个a啊,aaa的参数a是上一层函数的a-1

#1

当a=2时,b= aaa(a-1),此时a=2没问题吧?不管aaa里面发生什么,不会改变a的值 2。

在这个aaa函数中,传入的参数时a-1=1,对该函数中的变量a,a == 1成立,return 1,所以b= aaa(a-1)得到的是b = 1,a的值没变 是2。

所以 不存在a的值变了,因为两个函数中的a压根就不是同一个,你换个参数意思也一样

a = 2
b = aaa(a-1)
func aaa(b int) int{
    if b == 1{
         return 1
    }
}
#3