黑马程序员技术交流社区
标题:
关于while语句条件判断
[打印本页]
作者:
马官聘
时间:
2015-11-13 23:27
标题:
关于while语句条件判断
class lianxi
{
public static int half(int[] arr,int key)
{
int min = 0,max=arr.length-1,mid;
while (min<=max)
{
mid=(max+min)/2;
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else
return mid;
}
return -1;
}
public static void main(String[] args)
{
int[] arr={2,3,5,8,10,20};
int index =half(arr,22);
System.out.println("index="+index);
}
上面那个while判断min不是会一直小于等于max么 为什么要找的数不在数组中会输出-1?
作者:
黑锅
时间:
2015-11-14 12:03
这是个需要有返回值,有形参的方法。方法执行结束后必须有return值。
作者:
黑锅
时间:
2015-11-14 12:04
while语句成立并执行则返回 mid 否则返回-1
作者:
基础班庄艳平
时间:
2015-11-19 21:21
帮你顶下贴
作者:
zqiang
时间:
2015-11-19 21:29
return语句在while循环之外吧
作者:
小笨笨天
时间:
2015-11-19 22:36
无语 谁说一直是 小于等于 max的; 这种逻辑题 自己拿笔一步步验算就会一目了然的。注意折半查找 跳出循环的条件
作者:
13533258481
时间:
2015-11-20 00:25
顶下贴
作者:
wx_YXxWrUwd
时间:
2015-11-20 00:52
当所有数挨个比对之后 找了遍 找不到一样的 min就会大于max
作者:
小鹿
时间:
2015-11-20 09:09
请问你的注释呢!! 这习惯可不好!
作者:
Little_jie
时间:
2015-11-20 10:00
找不到就会执行while循环外的return -1;
作者:
qq331335030
时间:
2015-11-20 10:13
哥们,都中级黑马啦
作者:
chenxianzai
时间:
2015-11-20 19:38
因为min有一种情况是中间数加1 ,当max和min指向同一个数时,再加1就比max大了,输出返回-1是一个规范
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2