我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 执行流 >

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

归档日期:06-28       文本归类:执行流      文章编辑:爱尚语录

  他从100开始递减,一直减到0的执行步骤我知道,可是当返回一个结果,然后intsum=i的时候就等于1了?然后就是123,步循环执行,每次sum增1,具体执行流程是怎么回事?求大神解答!万分感...

  他从100开始递减,一直减到0的执行步骤我知道,可是当返回一个结果,然后int sum =i的时候就等于1了?然后就是123,步循环执行,每次sum增1,具体执行流程是怎么回事?求大神解答!万分感谢

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  很简单,执行到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(i0)这句话应该不成立,不成立的话怎么就进到if里面了?里面并没有累加,他是怎么每次增1的?

本文链接:http://guidoon.com/zhixingliu/170.html