我目前正在查看MIT的Java课件,不确定为什么要涉及一段代码。我尝试删除代码以确定是否必要,并阻止程序运行。
我有两个数组,一个是跑步者的名字,另一个是他们的时代。目标是找到时间最短(最快)的索引,然后再给时间第二快的人。即命令提示符将输出john是最快的,而kate是第二快的
我感到困惑的部分是“ secondIndex == -1 ||” ---这是为什么呢?如果我删除它我得到错误
线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:-1
public static int getSecondIndex(int[] values) {
int minIndex = getMinIndex(values);
int secondIndex = -1;
for(int i = 0; i < values.length; i++) {
if(i == minIndex){
continue;
}
if(secondIndex == -1 ||
values[i] < values[secondIndex]) {
secondIndex = i;
}
}
return secondIndex;
}
最佳答案
然后它将评估在索引-1上没有条目的values[secondIndex]
。 ||
从左到右短路,因此在secondIndex = -1的情况下,将永远不会评估values[secondIndex]
。