这个输出的6,是7所在的下标吧?
在有序数组a[]中查找m,应该返回m在a[]中的下标i才对嘛。不然查询m,然后直接告诉你查询到m,没啥意义了。

解决方案 »

  1.   

    我不知道你的问题在那里,不过程序输出的描述有误
    System.out.println("这个数字在" + comparisonCount + "的后面。");
    这里的comparisonCount应该是指查询的次数
      

  2.   

    根据程序,首先你的position是你找到数字所在数组位置的索引,而你变量comparisonCount准确的说是比较的次数,而根据你的本意,想输出的是lowerbound索引所对应的数字,即System.out.println("这个数字在" + array[lowerbound] + "的后面。");但是这样就存在一个问题,可能存在的情况是(lowerbound + upperbound)/2 也就是position,他的值等于lowerbound,例如lowerbound=4,upperbound=5,求出来的position=4。如果你想要这样的输出结果,可以这样修改:System.out.println("这个数字在" +(lowerbound==position?array[lowerbound-1]:array[lowerbound]) + "的后面。");
    希望能帮到你,第一次回答问题,哈哈