我正在尝试在整数数组中找到最小值,但是当我这样做时,就我所知,应该不对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/

10-11 22:28
查看更多