Java这个return什么情况,吧我看封了,高手赐教!

[复制链接]
查看11 | 回复5 | 2012-8-24 16:37:01 | 显示全部楼层 |阅读模式
方法是运行在方法栈中的,后进先出拿sum=fun(3)为例3
fun(1) = 12
fun(2)=fun(1)+21
fun(3)=fun(2)+31,2,3表示进栈顺序,2等到3有结果才会被调出运行,后面类推这种方式叫递归,最后得到的sum就是3+2+1了,逻辑上就是只关心每一步怎么做,然后交给方法自己去做就好了,没那么疯了吧...
回复

使用道具 举报

千问 | 2012-8-24 16:37:01 | 显示全部楼层
return在这里相当于输出,sum = fun(100);就是调用fun(int temp)这个方法的,先说return temp + fun(temp-1);初始的temp=100,第一次执行完之后输出的就是100+fun(99);第二次执行完之后输出的就是100+99fun(98);一直执行到100+.......(1),这时temp=1,于是retu...
回复

使用道具 举报

千问 | 2012-8-24 16:37:01 | 显示全部楼层
递归调用,return里面加了一个方法可能就乱了,但是fun()方法返回的不还是int型的数据吗,其实不就是return temp+N么.fun(4);4+ fun(3)----3+ fun(2);--------2 + fun(1);-------------1;以此类推不就是这个意思么....
回复

使用道具 举报

千问 | 2012-8-24 16:37:01 | 显示全部楼层
是运用递归调用求从1到100相加的和,return 到最后为1...
回复

使用道具 举报

千问 | 2012-8-24 16:37:01 | 显示全部楼层
递归调用,100+99...+1...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行