将信息转移到构造函数中

时间:2016-11-16 15:17:09

标签: java

我坚持转移我已经进入构造函数的信息。怎么做正确? :)

我试图查看一些文档,但是找不到任何东西:( 另外,如何把这些" f""从我的If出来?

(从位置到二元搜索)

public class BinarySearchRecursive {
public static void main(String[] args) {



        System.out.print("Bitte wählen Sie die Folge von 1 bis 5 aus: ");
        Scanner eingabe = new Scanner(System.in);
        int folge = eingabe.nextInt();

        System.out.print("Bitte geben Sie den Suchschlüssel ein:  " );
        Scanner eingabe1 = new Scanner(System.in);
        int key = eingabe1.nextInt();

        int [] f;



       if (folge == 1){
           f= new int[]{20};

           }
       if (folge==2){
          f= new int []{3,4};

           }
       if (folge==3){
           f= new int []{1,2,3,4,5,6,7,8,9,10,11};
           }
       if (folge==4){
           f= new int []{10,20,30,40,50,60,70,80,90,100,110};
           }
       if (folge==5){
           f= new int [] {20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40};
            }

       int position = binarySearch (f, key, 0, f.length -1);
       }


       public static int binarySearch (int [] f, int key, int intervallgrenzeLinks, int intervallgrenzeRechts){


           int NO_KEY = -2;
           if (intervallgrenzeLinks <= intervallgrenzeRechts){
               int m = (intervallgrenzeLinks + intervallgrenzeRechts)/ 2;

               if ( key == f[m]) {
                   return m;
                   } else if ( key < f[m]){
                       intervallgrenzeRechts = m-1;
                   }else {
                       intervallgrenzeLinks = m+1;
                   }


           } else {
               return NO_KEY;
           }
           return binarySearch (f, key, intervallgrenzeLinks, intervallgrenzeRechts );



       }



    }

1 个答案:

答案 0 :(得分:0)

要解决您的问题,请将int[] f;替换为int[] f = new int[0]; 或者添加这样的其他内容:

else{
    f=new int[0];
}

现在它应该按照需要工作。并实际获得输出执行此System.out.println(binarySearch(f, key, 0, f.length - 1));