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

时间:2014-10-07 16:07:25

标签: java arrays eclipse int return

显然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++;
        }
    }
}

3 个答案:

答案 0 :(得分:2)

quick_find_1d_peak1中,您的上一个条件(else)不会返回任何内容。这意味着它可能永远不会被返回。要解决此问题,请在else中返回一些内容(这可能不是您想要做的,因为您正在递增i以转到下一个),或者在for之后返回一些内容循环,所以无论如何都会返回。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

您可能想要使用try-catch块或在没有任何条件满足的情况下返回一些内容(例如,在交换机中可能是默认值)。

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

希望这有帮助。

干杯!