gpt4 book ai didi

java - 需要帮助解决 Java 中的 ArrayIndexOutOfBounds 异常

转载 作者:行者123 更新时间:2023-12-01 19:54:49 26 4
gpt4 key购买 nike

我正在尝试运行一个调用下面的类方法的方法。每次调用computeIterative()方法时,我都会收到ArrayIndexOutOfBoundsException。我添加了一些代码来打印循环,并且我看到异常在循环第二次左右发生,但循环继续直到完成。我做错了什么,无法解决这个数组异常?

static int computeIterative(int n) {

efficiency = 0;
int[] a = new int[n];
int firstInt = 0;
int secondInt = 1;
int results = 0;
if (n > 1) {
a[0] = 0;
a[1] = 1;

for (int i = 2; i <= n; ++i) {
efficiency++;
firstInt = a[i-1];
secondInt = a[i-2];
results = 2 * firstInt + secondInt;
System.out.println("Loop " + efficiency + " of " + n );
System.out.println(firstInt);
System.out.println(secondInt);
System.out.println("Results: " + results);
a[i] = results;
}
} else {
a[0] = 0;
a[1] = 1;
}

return a[n];

}

感谢您的帮助。

最佳答案

错误在于行

a[i] = results;

因为在 for 循环中,您一直在使用:

for(i=2;i<=n;i++)

你会发现数组索引从0开始一直到n-1。所以当你使用时:

i <= n

您将遇到数组越界异常,因为它没有第 n 个元素。

将 for 循环条件更改为:

i <= n 

至:

i < n

并且您的代码应该可以工作。

关于java - 需要帮助解决 Java 中的 ArrayIndexOutOfBounds 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49953639/

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