【问题标题】:Why can't I return an index of an array as int in Java?为什么我不能在 Java 中将数组的索引作为 int 返回?
【发布时间】:2014-12-02 03:24:58
【问题描述】:

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

【问题讨论】:

  • 与你的问题没有直接关系,但是第一个else 子句中的条件永远不会为真,所以那里的代码永远不会被执行。 (应该改为 i==inputArray.length-1 &amp;&amp; ... 吗?)

标签: java arrays eclipse int return


【解决方案1】:

如果你的条件都没有满足,你可能想要使用 try-catch 块或返回一些东西(比如开关中的默认值)。

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

希望这会有所帮助。

干杯!

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      quick_find_1d_peak1 中,您的最后一个条件(else)不返回任何内容。这意味着有可能永远不会返回任何东西。要解决这个问题,要么在 else 中返回一些东西(这可能不是你想要做的,因为你正在增加 i 去下一个),或者在 for 循环之后返回一些东西,这样一些东西就会被返回无论。

      【讨论】:

        猜你喜欢
        • 2012-05-21
        • 1970-01-01
        • 2021-11-26
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 2014-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多