繁体   English   中英

return语句不结束方法java

[英]return statement does not ending method java

public class Interpolation_search {

    public static void main(String...s) {
        int rr[]= {1,2,3,4,9,10,15,80};
        System.out.println(search(rr,0,7,3));
    }

    static int search(int ar[], int lo, int hi,int X) {

        if(lo<hi&&ar[lo]!=ar[hi]) {
            int mid=lo + ((hi-lo)/(ar[hi]-ar[lo]))*(X-ar[lo]);
            if(X==ar[mid])
                return 1;      //l1
            else if(X>ar[mid])
                search(ar,mid+1,hi,X);
            else search(ar,lo,mid-1,X);
        }
        return 0;              //l2
    }
}

return 首先在 l1 执行两次,第二次在 l2 执行。

您似乎在理解递归方面有困难。

您的方法search()应该返回一个 int 结果。 并且方法本身反复调用自己(使用不同的参数)。 事情是:你们都忽略了这些递归调用。

换句话说:真正的答案是让您退后一步并了解递归含义以及如何正确使用它。 作为初学者,你可以尝试改变

search(ar,mid+1,hi,X);

return search(ar,mid+1,hi,X);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM