显然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++;
}
}
}
答案 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/
希望这有帮助。
干杯!