【发布时间】:2015-10-11 12:52:30
【问题描述】:
private int yo ( int [] arr, int i){
if(arr[i]!=0){
arr[i+2]=arr[i]+arr[i+1];
yo(arr, i+2);
}else{
return -1;
}
}
为什么我缺少退货声明?
【问题讨论】:
-
那么
arr[i]!=0时函数返回什么? -
在 if 块中需要添加 return 语句。否则在 else 块之后也可以。
-
递归是一个丑陋的概念,应该谨慎使用。如果您可以迭代,请迭代。在不使用递归的情况下,10 次中的 9 次解决您的问题会更加清晰,尽管它在中间增加了一些行和步骤。所以我的建议是先尝试通过迭代解决你的问题,如果失败,然后尝试调试你的递归。
-
我相信你错过了
return yo(arr, i+2)