其实不是很复杂你的两个问题关键在于形参上
退出递归就在于pos等于上面r的值3了,return的东西是什么都没有,意思就是void什么都不返回
你可以在函数下面
function combine(pos,h)
{
//这里加一句就知道为什么了
alert("开始的pos="+pos);这样会这样执行
弹出开始的pos等于2
你的对话框弹出2
弹出开始的pos等于3也就说等于3的这步直接return了,没有执行你的alert,而调用的时候是个循环,所以还会接着调用
弹出开始的pos等于3
弹出开始的pos等于2
你的对话框弹出2
退出递归就在于pos等于上面r的值3了,return的东西是什么都没有,意思就是void什么都不返回
你可以在函数下面
function combine(pos,h)
{
//这里加一句就知道为什么了
alert("开始的pos="+pos);这样会这样执行
弹出开始的pos等于2
你的对话框弹出2
弹出开始的pos等于3也就说等于3的这步直接return了,没有执行你的alert,而调用的时候是个循环,所以还会接着调用
弹出开始的pos等于3
弹出开始的pos等于2
你的对话框弹出2
2.当第一次pos等于2的时候,接下来的pos为什么还是2,这是由递归调用是执行顺序决定的