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)
究竟如何确定最小值?
你必须设置一些初始值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)