Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示错误。我想从If(){}返回值_Java - Fatal编程技术网

Java 显示错误。我想从If(){}返回值

Java 显示错误。我想从If(){}返回值,java,Java,这是我的二进制搜索程序。我正在搜索Item=a[4]=5。如何从while循环中存在的if语句返回值,而不在循环外声明return语句 package Array; class myArray { int a[]= {1,2,3,4,5,6,7,8,9,10}; //this block is only for printing the array { for(int i=0; i<=9;i++) { Sys

这是我的二进制搜索程序。我正在搜索
Item=a[4]=5
。如何从while循环中存在的if语句返回值,而不在循环外声明return语句

package Array;

class myArray
{
    int a[]= {1,2,3,4,5,6,7,8,9,10};
    //this block is only for printing the array
    {
        for(int i=0; i<=9;i++)
        {
            System.out.println(a[i]);
        }
    }
    public int LocationFinder()
    {   
        int Start=a[0],End=a[9],Item=a[4],loc=0;
        while(Start<=End)
        {
            int mid=(Start+End)/2;
            if(Item==mid)
            {
            Item=loc;
            return loc; // <-- I want to return from here
            }
            else if(Item>mid)
            {
                Start=mid+1;
            }
            else
                End=mid-1;


        }

    }
封装阵列;
类myArray
{
int a[]={1,2,3,4,5,6,7,8,9,10};
//此块仅用于打印阵列
{

对于(int i=0;i您的方法应如下所示:

使用索引:

public int LocationFinder()
    {   
          int Start=0,End=arr.length - 1,Item=a[4];
//Item = key 

while(Start<=End)
        {
            int mid=Start + (End-Start)/2;
            //Checking if item is present at mid     
            if(arr[mid]==Item)
            {
            return mid; //returning the index 
            }
            //if item is greater, than ignore the left side
            else if(arr[mid]<Item)
            {
                Start=mid+1;
            }
            //if item is smaller, than ignore the right side
            else
                End=mid-1;
 }
//returning -1 if the value is not found
return -1;
}
public int LocationFinder()
{   
int Start=0,End=arr.length-1,Item=a[4];
//项=键

虽然(开始你得到了什么错误?包括日志或堆栈跟踪。首先你缺少
return
,这甚至不会编译。如果
Start>End
,会发生什么情况?
while
循环结束,方法返回…..什么?!?这是二进制搜索程序,我如何从if语句返回值t???Title说“Error is show”,但实际上并没有向我们显示得到的错误,这类似于“此方法必须返回int类型的结果”,因为循环后没有
return
语句,循环可以结束,那么返回值是多少?基本上,在第一个if语句中,写“return mid”谢谢,这对我来说是更多的帮助,谢谢you@ShahirZain我总是乐于帮助人们,当你遇到问题时,我会问更多的问题。是的,我还有另一个问题…我如何在没有访问修饰符的情况下使用接口方法???@ShahirZain看到了这一点:并从tuotrialpoint学习OOP和Java的基础知识,以及当你在编码,然后把它和代码一起发布在stackoverflow上,这样你就可以得到帮助了!
   public int LocationFinder()
            {   
          int Start=arr[0],End=arr[length - 1],Item=a[4];
//Item = key 

        while(Start<=End)
                {
                    int mid=(Start + End)/2;
                    //Checking if item is present at mid     
                    if(arr[mid]==Item)
                    {
                    return mid; //returning the index 
                    }
                    //if item is greater, than ignore the left side
                    else if(arr[mid]<Item)
                    {
                        Start=mid+1;
                    }
                    //if item is smaller, than ignore the right side
                    else
                        End=mid-1;
         }
        //returning -1 if the value is not found
        return -1;
        }