求助:有一代码关于递归调用,但有不明白,请指教!
cleardo sub2 with 5
cancel
_______sub2.prg_____
*sub2.prg
para y
if y>1
do sub2 with y-1
endif
?replicate("*",y)
return
______运行结果答案:____
*
**
***
****
*****
问题:
1、刚开始时把5传递给sub2.prg时 ,接收5进行判断Y>1进行调用递归,在应先输出5个*,为什么是1个*,好象应是倒过三角形
2、y=1是调用递归出口,现在还在y=5,y-1=4,3,2,还在进行递归阶段,怎么能执行?replicate("*",y),只有y=1时才能执行
?replicate("*",y),?replicate("*",y)什么时候执行?
if y>1
do sub2 with y-1
endif
?replicate("*",y)
调用递归到底是怎样一回事,能指教一下,最好通俗一点详细些,多谢了!
[ 本帖最后由 sylknb 于 2010-12-2 11:28 编辑 ]