繁体   English   中英

难以理解此findMinimum数组方法

[英]Trouble understanding this findMinimum array method

因此,我正在对子类中的数组进行排序,这些子类从类中继承了几个方法,并且具有诸如交换交换索引之类的方法,以寻找最小值的方法,要打印的方法等,但是对于findMinimum方法,我的老师给了我们代码,但我在理解它时遇到了一些麻烦,希望你们中的一些人能够提供帮助。
用户在主类中插入一个数组

public int findMinimum(int[] array, int first){
    int minIndex = first;
    for(int i =0; i<array.length; i++){
        if(array[i]<array[minIndex]){
            minIndex = i;
        }
    }
    return minIndex;
}

我很难理解的是,因为int first没有给出初始值,难道它不被视为null,因此不能用于检查循环吗? 如何将int minIndex设置为等于null?

提前致谢

int first是一个函数参数,因此在您调用此函数时它将具有初始值。 您将使用一些数组和最小的初始假定索引来调用它:

myMinimum = findMinimum(myArray, 0)

在这种情况下,实际上并没有多大意义,因为函数的最小值将不依赖于此参数。 我将其重写为:

public int findMinimum(int[] array){
    int minIndex = 0;
    for(int i = 1; i < array.length; i++){
        if(array[i] < array[minIndex]){
            minIndex = i;
        }
    }
    return minIndex;
}

瞧,我也跳过了第一个值,因为默认情况下它是一个初始最小值。

在代码中调用此方法时,将同时为arrayfirst提供一个初始值,例如...

public static void main(String[] args){
    int[] myArray = new int[]{2,5,10,30};
    int theMinimum = findMinimum(myArray,5);
    }

变量first将永远有一个价值,它只是取决于什么是通过方法调用中传递。 在上面的示例中, first值为5

也许这就是让您感到困惑的地方……您的代码是一种方法-仅当您在代码中调用该方法时,它才会运行,如上例所示。 如果您不调用方法findMinimum() ,那么此代码将永远不会运行。 main()方法是该方法的例外,它是一种特殊方法,在Java JVM中,它被理解为入口点,即运行的第一行代码。 需要调用所有其他方法,并传递所需的值(在这种情况下,传递arrayfirst值)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM