[英]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;
}
瞧,我也跳过了第一个值,因为默认情况下它是一个初始最小值。
在代码中调用此方法时,将同时为array
和first
提供一个初始值,例如...
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中,它被理解为入口点,即运行的第一行代码。 需要调用所有其他方法,并传递所需的值(在这种情况下,传递array
和first
值)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.