gpt4 book ai didi

java - 返回方法时出现 ArrayExceptionOutOfBounds

转载 作者:行者123 更新时间:2023-11-30 07:02:19 25 4
gpt4 key购买 nike

我正在尝试创建一个 fillArray 方法,该方法用 20 个随机值填充和排列,并每隔三个值求和。我在调用该方法的第 21 行收到 ArrayExceptionOutOfBounds。通过调试,我看到数组填充了正确的值,并且正确计算了总和。我想知道错误是什么。

public static void fillArray(){
//adding up A[0], A[3], A[6}, ...

double[] A = new double[20];
for(int i = 0; i < A.length; i++)
A[i] = Math.random();

double sum = 0;
int k = 0;
do{
k += 3;
sum += A[k];
}while(k < 20);

System.out.println("sum = " + sum);
}

同样,我希望确定错误的原因,不一定是修复它的方法。

最佳答案

这是你的问题:

do{
k += 3;
sum += A[k];
}while(k < 20);

K 将等于 0,然后是 3,然后是 6,依此类推,直到达到 21,然后您尝试访问超出范围的 A[21]。

这是因为在 while 循环的第 6 次迭代中,当 k = 18 时,(k < 20)为真,因此 while 循环继续并向 k 添加另一个 3 使其成为 21。之后,while 循环停止,因为 k 不再小于 20,k 的值为 21。

关于java - 返回方法时出现 ArrayExceptionOutOfBounds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29177257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com