这个while(true)怎么退出循环的?(二分查找法里的)
请问各位高手这个程序里find里的while(true)是怎么退出循环的,while(true)可是无限循环啊,而且循环体里面没有break语句,应该是抛出EOFException才对啊,请各位大侠知道我一下
public class BinarySearchTest
{
private long[] a;
private int nElems;
public BinarySearchTest(int max)
{
a = new long[max];
nElems = 0;
}
public int size()
{
return nElems;
}
public int find(long searchKey)
{
int lowerBound = 0;
int upperBound = nElems - 1;
int curIn;
while(true)
{
curIn = (lowerBound + upperBound) / 1;
if (a[curIn] == searchKey)
return curIn;
else if (lowerBound > upperBound)
return nElems;
else
{
if (a[curIn] < searchKey)
lowerBound = curIn + 1;
else
upperBound = curIn - 1;
}
}
}
}