繁体   English   中英

为什么我不能在Java中将数组的索引返回为int?

[英]Why can't I return an index of an array as int in Java?

显然,Eclipse一直给我一个错误,要求我返回一个int。 是不是将array[i]当作int还是我们不能像这样在Java中返回数组的索引? 有人可以帮助我吗?

public static void main(String[] args){     
    int[] array = {10,6,4,3,12,19,18};
    int z = quick_find_1d_peak1(array);
    System.out.println(z);
}

public static int quick_find_1d_peak1(int[] inputArray){
    for (int i=0 ; i<inputArray.length ; ){
        if (i==0 && inputArray[i] >= inputArray[i+1]){
            return inputArray[i];
        } else if (i==inputArray.length && inputArray[i] >= inputArray[i-1]){
            return inputArray[i];
        } else if (inputArray[i] >= inputArray[i-1] && inputArray[i] >= inputArray[i+1]){
            return inputArray[i];
        } else {
            i++;
        }
    }
}

quick_find_1d_peak1 ,您的最后一个条件( else )不返回任何内容。 这意味着永远都不会返回任何东西。 要解决此问题,请在else返回某些else (这可能不是您想要执行的操作,因为您要递增i以转到下一个),或者在for循环之后返回某些内容,无论如何都将返回。

您不能保证返回结果。 例如,假设inputArray为空,则永远不会输入for循环,并且不返回任何内容。 或者,如果循环内的所有条件均未触发,那么您的else条件将不返回任何内容。

您必须保证在方法中返回某些内容(或引发异常)。

您可能想使用try-catch块,或者如果没有一个完整的条件(例如开关中的默认值),则返回一些内容。

http://www.dreamincode.net/forums/topic/22661-exception-basics-try-catch-finally/

希望这可以帮助。

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM