所以我在子类中对数组进行排序,这些子类从类继承了几个方法,包括交换到切换索引,找到最小值的方法,打印方法等,但是对于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?
提前致谢
答案 0 :(得分:1)
int first
是一个函数参数,因此在调用此函数时它将具有初始值。您将使用一些数组和初始假设的min:
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;
}
请参阅,我也跳过第一个值,因为默认情况下它是初始最小值。
答案 1 :(得分:0)
当您在代码中调用此方法时,您会为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
的值)