java - 计算数组的最大高度

标签 java indexoutofboundsexception

<分区>

我正在计算应用程序中插入的 max 高度,它给我一个 ArrayIndexOutOfBound 错误,插入值的时间与长度相同包含 0 索引的数组,但我仍然遇到此错误。

int nrPersons = 3;
double[] height = new double[nrPersons];
double maxHeig = 0;

for (int i = 0; i <= nrPersons; i++) {
    Scanner in = new Scanner(System.in);
    in.useLocale(Locale.US);

    System.out.println("Insert Height");

    height[i] = in.nextDouble();

    if (height[i]> maxHeig)
        maxHeig = height[i];

}

System.out.println("The max Height is: "+maxHeig);

最佳答案

你的问题在这里

for (int i = 0; i <= nrPersons;i++){

您不需要让 i 达到 nrPersons 的值,因为这将超出范围。 Java 中的数组从 0 开始索引,并定义了元素的数量。所以对于一些数组:

int[] i = new int[3];
i[0] = 0; //fine
i[1] = 0; //fine
i[2] = 0; //fine
i[3] = 0; //**ERROR** Out of bounds

简单的解决方案是使用这种通用语法:

for (int i = 0; i < nrPersons; i++)

关于java - 计算数组的最大高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29281139/

相关文章:

java - 拆分字符串时数组越界异常

java - 在Java中打印二维数组(通过split生成)

java - 在字典中正确位置插入单词的最快方法

java - 阿拉伯语到罗马语转换器: ArrayIndexOutOfBounds

java - 将通用类型 <T> 的元素添加到 LinkedList 的 arrayList

java - 当我的 Web 应用程序空闲时,独立的 tomcat 9 每 10 秒将 CPU 峰值增加到 50%

c# - 错误 : Index out of bounds of array

java - java可以在其他对象而不是子类型中调用父覆盖方法吗?

java - Hibernate session 问题

java - 在jsp Servlet中使用hibernate在mysql中插入图像