从数组中找到最小值 - 我不明白

Grv*_*v21 3 java arrays algorithm minimum

所以我知道下面的代码是有效的,但由于我对编码很新,我不明白为什么以及如何工作.如果有人能向我解释,那将有助于我理解编程.

代码如下:

 public static double minValue(double[] times){  
        double minValue = times[0];  

        for(int i = 1; i < times.length; i++){  
            if (times[i] < minValue){  
                minValue = times[i];  
            }  
        }  
        minValue = minValue / 60;
        return minValue;  
    }
Run Code Online (Sandbox Code Playgroud)

这里我不明白的是:double minValue = times[0];为什么这个值0?它也适用于其他数字,低于数组的长度.使用空格或大于数组长度的数字会返回错误,但必须有代码专门使用的原因0.

然后这个:

for(int i = 1; i < times.length; i++){  
    if (times[i] < minValue) {  
         minValue = times[i];  
    }
}
Run Code Online (Sandbox Code Playgroud)

究竟如何确定最小值?

Era*_*ran 5

你必须设置一些初始值minValue.

一种惯例是将其初始化为大于数组中所有数字的值(例如Double.MAX_VALUE).

然后循环必须遍历数组的所有元素:

for(int i = 0; i < times.length; i++)
Run Code Online (Sandbox Code Playgroud)

另一个约定是将它初始化为数组的一个值(任何一个都可以工作).通常选择数组的第一个元素,这允许循环从数组的第二个元素迭代:

for(int i = 1; i < times.length; i++)
Run Code Online (Sandbox Code Playgroud)