java中的递归缺少一个return语句?

时间:2015-10-11 12:52:31

标签: java arrays recursion

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; 
    }

}

为什么我错过了退货声明?

1 个答案:

答案 0 :(得分:0)

您在return区块中缺少if语句。

通常递归的工作方式如下:

private int recursiveMethod (int a){
   // your code goes here

   return recursiveMethod (..);
}

从我的代码中可以理解,你实际上不必使用递归,所以尝试使用迭代来做。

无论如何,你的代码应该是:

private int yo ( int [] arr, int i){
    if(arr[i]!=0){  
         arr[i+2]=arr[i]+arr[i+1];
         return yo(arr, i+2);
    }else{
       return -1; 
    }

}