/*
3.使用二分法查找有序数组中元素。找到返回索引,不存在输出-1。使用递归实现
*/
import java.util.Scanner;
public class Recursion{
public static void main(String[]args)
{
System.out.println("请输入要找的整数");
Scanner sc=new Scanner(System.in);
int num = sc.nextInt();
int []a={1,2,3,4,5,6,7,8,9};
int front = 0;
int end = a.length-1;
int mid = (front+end)/2;
//递归实现二分法
int index=findArray(a,front,mid,end,num);
if(index!=-1)
{
System.out.println("找到该数"+index);
}
else
{
System.out.println(index);
}
}
public static int findArray(int[]b,int front,int mid,int end,int num)
{
int index = -1;
if(front==end)
{
if(b[mid]==num)
{
return mid;
}
else
{
return index;
}
}
else if(front
{
if(b[mid]==num)
{
index = mid;
return index;
}
else if(b[mid]>num)
{
end = mid-1;
mid = (front+end)/2;
return findArray(b,front,mid,end,num);
}
else if(b[mid]
{
front=mid+1;
mid=(front+end)/2;
return findArray(b,front,mid,end,num);
}
}
//为什么下面的else需要注释掉,不注释掉编译会报错说缺少返回值
else
{
return index;
}
// return index;
}
}
为什么程序的报错,说else语句之后缺少返回值
原文:http://11900208.blog.51cto.com/11890208/1865846