我正在计算应用程序中插入的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);
答案 0 :(得分:3)
你的问题在这里
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++)