[英]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.