java,while(true),什么时候退出?

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:53:31
public int find(long searchKey)
{
int lowerBound = 0;
int upperBound = nElems-1;
int curIn;

while(true)
{
curIn = (lowerBound + upperBound ) / 2;
if(a[curIn]==searchKey)
return curIn;
else if(lowerBound > upperBound)
return nElems;
else
{
if(a[curIn] < searchKey)
lowerBound = curIn + 1;
else
upperBound = curIn - 1;
}
}
}
上面的代码:while的条件一直是true那什么时候推出循环?
ps:我的意思是,返回数字后,为什么while就是false了.

思路:一个方法中,看见return就结束。也就是说,一个方法如果没有选择语句的话,只能有一个return。

当你的程序走到return 的时候就退出了
return 就是直接跳出你的方法find()
return 就直接跳出循环了 不论循环条件是否成立
for(int i = 0 ; i<1000000;i++){
if (i = 500 ) return ;
}
当i = 500 是就会跳出for循环
一个方法中 看见return就结束呗
也就是说 一个方法如果没有选择语句的话 只能有一个return

return 有两用途。一:返回什么值。二:退出当前方法,并返回那个值。
while里面要是没有遇到return 就不会退出方法,就一直执行while循环。遇到return时,true没有变成false,但此时必须退出方法,方法里面的代码就不会执行了。

上面的方法 是在return语句处退出的。return语句,就是返回当前数据,结束本方法。

a[curIn]==searchKey时;return curIn; 也就退出
lowerBound > upperBound时;return nElems; 也就退出
其实return 就是退出

遇到return 即退出