求一个java递归算法的执行流程

他从100开始递减,一直减到0的执行步骤我知道,可是当返回一个结果,然后intsum=i的时候就等于1了?然后就是123,步循环执行,每次sum增1,具体执行流程是怎么回... 他从100开始递减,一直减到0的执行步骤我知道,可是当返回一个结果,然后int sum =i的时候就等于1了?然后就是123,步循环执行,每次sum增1,具体执行流程是怎么回事?求大神解答!万分感谢 展开
 我来答
百度网友05af92258
2017-10-12 · TA获得超过578个赞
知道小有建树答主
回答量:290
采纳率:62%
帮助的人:116万
展开全部
很简单,执行到1的时候,i-1的值再调用自己,直到,i-1<=0的时候,你可以理解,一直反复调用自己,但是到了1这一步的时候 都停了。然后,当i=0的时候,最后一次的return sum;返回了一个0。于是,倒数第二次的sum=1+0;然后再到return sum;返回1;接着,倒数第三次执行。此时i=2. sum=2+1;return sum=3;返回上一级,倒数第4次sum=3,sum=3+3;等于6,再到reutrn sum=6;返回上一级……;依次类推。
追问
就是最后return sum返回0的时候我就不懂了,按你说的这个时候int sum =i;sum应该等于0,那i也是0,if(i>0)这句话应该不成立,不成立的话怎么就进到if里面了?里面并没有累加,他是怎么每次增1的?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式