Java:for循环似乎在我的方法中迭代

时间:2015-04-21 17:39:50

标签: java

此方法从fromIndex开始搜索,返回arrayOfInts中最小元素的索引。我的returnVal用红色加下划线,它表示我的returnVal尚未初始化,这告诉我我的for循环没有被迭代。

public static int findMin( int fromIndex, Integer[] arrayOfInts ) {

    int returnVal;
    int previousVal = arrayOfInts[fromIndex].intValue();

    for(int i = fromIndex; i < arrayOfInts.length; i++){

        if (arrayOfInts[fromIndex].intValue() <= previousVal){
            previousVal = arrayOfInts[fromIndex].intValue();
            returnVal = fromIndex;
        }
    }

    return returnVal;
}

3 个答案:

答案 0 :(得分:1)

我认为&#39;它&#39;你的意思是编译器。如果它说变量没有被初始化,那么解决方案是初始化它:

 int returnVal = -1;

这是definite assignment

的示例

答案 1 :(得分:1)

您错误地解释了该消息。如果arrayOfInts.length = 0,则不能输入for循环 arrayOfInts[fromIndex]应为arrayOfInts[i]

答案 2 :(得分:0)

您必须初始化returnVal变量。您可以使用任何int值来执行此操作。这就是编译器提供该错误消息的原因