数组求和不正确,线程“main”java中出现异常。lang.ArrayIndexOutofBounds异常:100
我的数组大小是100,也就是数组[100]
我在做整个数组的和。我不知道我在哪里犯了错误
我的代码:
public void s(){
// skipped portion of code
float []array = new float[100]{1,2,3,...........100};
sum (array);
//skipped the portion of code
}
public void sum(float[] f){
float sum=0;
for(int z=1;z<=f.length;z++)
{
sum += f[z];
}
System.out.print("Ratio"+sum);
}
没有求和,没有给出正确的打印输出
# 1 楼答案
java中的数组从索引
0
开始,在索引array.length-1
结束。 你得到这个异常是因为你要求索引100或array.length
,这比数组多了1个元素替换:
与:
这是一种更简洁的数组迭代方式
# 2 楼答案
java中的数组
a
被索引为0到a.length-1
,而在此循环中:可以通过
f.length
访问元素1f[f.length]
是不允许的。此外,这个错误是非常描述性的,如果你试图理解它,应该会有很大帮助# 3 楼答案
Java数组索引从0开始,长度为-1,因此需要
for (int z=0;i<f.length;z++)
# 4 楼答案
在for循环中,f.length将给出100,但数组的索引总是从0开始,直到99(总内存为100)
将for循环更改为
for(int z=0;z<f.length;z++)
# 5 楼答案
您没有以正确的方式定义数组。 使用这个: float[]数组={1,2,3,…,100}; 或者干脆 float[]数组=新的float[100],并用for循环填充它。 Java中的数组是0-index,所以循环应该从0到len-1