我正在学习如何用Java编程,但似乎无法解决数组问题。
看到,当我运行此程序时,出现数组超出范围错误:

我知道这可能真的很容易解决,但是我不知道发生了什么。

public class AlturaPromedio {
float alturas[];
int cont;
float promedio;
InputStreamReader inputStream = new InputStreamReader(System.in);
BufferedReader buffRead = new BufferedReader(inputStream);

float cargarAlturas() throws IOException {
    alturas = new float[4];
    for (cont = 0; cont < alturas.length; cont++) {
        System.out.println("Escriba el nombre de la primer altura:");
        alturas[cont] = Float.parseFloat(buffRead.readLine());
    }
    return alturas[cont];

}

float calcularPromedio() {
    promedio = (alturas[1] + alturas[2] + alturas[3] + alturas[4] + alturas[0]) / 5;
    return promedio;
}

/*float calcularMaximo(){
    maximo = Alturas.min(alturas);
   */
    public static void main(String[] ar) throws IOException {
        AlturaPromedio personas = new AlturaPromedio();
        personas.cargarAlturas();
        personas.calcularPromedio();


}
}

最佳答案

cargarAlturas()函数中的return语句更改为

return alturas[cont-1];


而且您会没事的。实际上,loop后面的cont值为4。由于您的array大小为4,并且您正在访问第5个变量,因此它将为您提供ArrayIndexOutOfBoundException.

10-06 15:02