2 faradayzhangchina FaradayZhangChina 于 2015.05.29 18:40 提问

猜猜看这段代码的返回值?如何归纳

以下的代码:

 public class GuessTheValue {


        int foo(int[] array, int num){
            int i = array.length - 1;
            while (i >= 0){

                if (array[i] > num){
                    return i;
                }
                i--;
            }

            return i;
        }

假设我们正在用一个非空的数组调用这个方法。我们应该如何归纳调用这个方法返回一个-1?我们应该如何归纳调用这个方法返回一个12?
图片说明
图片说明
我的答案是返回-1的值的话,归纳应该选All values are greater than or equals to num.,
但是对于返回12的值的话,我无法判断,觉得如果array的数组超过13的话,就可能返回其他的值,比如array的数组位数是20,返回值可能是19. 大家有其他的答案吗?

4个回答

u010312480
u010312480   2015.05.29 22:29
已采纳

归纳调用是什么意思?

u010312480
u010312480 回复FaradayZhangChina: 恩恩
2 年多之前 回复
FaradayZhangChina
FaradayZhangChina 首先感谢每一个回答问题和提出质疑的同行。但是,正确的答案却只有ITcms回答对了,那就是第一题,答案是第三个,第二题,答案是倒数第二个。确实,像你所说的,在做这类猜猜看返回值的题目的时候,首先,要弄清楚归纳题意,是求array数组最后一个大于num的下标,如果不存在返回-1. 完全正确。
2 年多之前 回复
u010312480
u010312480 第一个问题回答错了,,,应该选择第三个答案,选择所有的数小于等于num。
2 年多之前 回复
u010312480
u010312480 第二个问题:返回12是因为下标是12的数,也就是第13个数比num大,且后面再也没有比num大的数了,所以选择第三个答案:后面的数小于等于num
2 年多之前 回复
u010312480
u010312480 这样就好理解了吧,第一个问题:之所以返回-1是因为数组中并没有比num大的数,看看选项即可知道选倒数第二个答案。
2 年多之前 回复
u010312480
u010312480 哦,我知道了,首先要弄清楚这段代码是干什么的:这个方法是寻找数组中最后一个比num大的下标,如果不存在则返回-1。
2 年多之前 回复
yumu908
yumu908   2015.05.29 19:35

第一个 选All values are greater than or equals to num.,
第二个选倒数第二项

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2015.05.29 20:40

Eclipse里面运行下。

qq_28592451
qq_28592451   2015.05.29 23:30

Eclipse里面运行下。

Csdn user default icon
上传中...
上传图片
插入图片