I'm trying to implement a binary search.

Here is my code:

Just imagine that there is some unknown key. (in this case it happens to be 37)Code:`import java.util.Scanner;`

import java.io.*;

public class test3

{

public static void main( String args[] )

{

System.out.println(binarySearch());

}

public static Boolean testMiddle(int middle)

{

int key = 37;

if (middle <= key) return true;

else return false;

}

public static int binarySearch()

{

int low=0;

int high = 40;

int middle = (low + high) / 2;

do

{

if (testMiddle(middle))

{

low = middle;

middle = (low + high) / 2;

}

else

{

high = middle;

middle = (low + high) / 2;

}

} while (low<high);

return middle;

}

}

And the binarySearch method has to keep making calls to testMiddle to "zero in" on the key.

If the argument to testMiddle is <= the key, then it returns true. if it's greater, then it returns false.

My binarySearch method has problems. it goes into infiniteloops sometimes.

How do I need to modify my binarySearch method? I'm sure it's a small change but I just can't figure it out. :(