我正在学习如何用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.