我正在尝试在整数数组中找到最小值,但是当我这样做时,就我所知,应该不对array-index进行计数,而只是对它进行比较,从而得到arrayindexoutofbounds索引和最小值。
下面有问题的代码的一部分:
}
System.out.println(sum);
int minste=tall[0];
for (int i : tall){
if(tall[i]<tall[0]){ //This is where the exception is made. But why?
minste=tall[i];
}
}
System.out.println(minste);
}
}
最佳答案
i
已经是一个元素,只需使用它即可。无需tall[i]
:if(i < minste) {
此循环的意思是:“对于int
中的每个tall
”。
为了更好地理解增强的循环,请按以下方式考虑:
for(int i = 0; i < tall.length; i++) {
System.out.println(tall[i]);
}
将打印与以下内容相同的内容:
for(int i : tall) {
System.out.println(i);
}
这就是为什么建议对变量使用有意义的名称,而不是使用
i
代替item
的原因,因此就像“对于item
中的每个tall
”一样...寻找最小值的替代解决方案:
使用
Arrays#sort
返回数组中的第一个元素
关于java - 尝试查找最小值数组时出现异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19358462/