Java遞歸實現二分法,希望各位指點一下

/*
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<end)
		  {
		 
			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]<num)
			{
				front=mid+1;
				mid=(front+end)/2;
			    
				return findArray(b,front,mid,end,num);
			 
			}
			
	    
		 }
		 //爲什麼下面的else需要註釋掉,不註釋掉編譯會報錯說缺少返回值
		   else
		   {
			   return index;
		    }
	  //  return index;
		
		 
  }
  }

爲什麼程序的報錯,說else語句之後缺少返回值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章