我需要帮助来弄清楚这段代码到底出了什么问题:
public class Fibonacci
{
public static void main(String args[])
{
int[][] numbers;
numbers = new int[1][25];
numbers[0][0] = 0;
numbers[0][1] = 1;
System.out.println("Fibonacci series: \n");
System.out.println(numbers[0][0]);
System.out.println(numbers[0][1]);
for(int i=2; i < 20; i++)
{
numbers[1][i] = numbers[0][i-2] + numbers[0][i-1];
System.out.println(numbers[1][i]);
}
}
}
我收到此错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Fibonacci.main(Fibonacci.java:15)
我可以看到我的数组索引在第15行超出范围,但我不知道如何解决它。 :/ 帮助赞赏。 :) 附:新来的
答案 0 :(得分:4)
第15行和第16行都有numbers[1][i]
,但由于第一维的大小仅为1,因此会引发异常。请尝试将两者都更改为numbers[0][i]
。
或者,从您尝试做的事情来看,您可以将阵列的初始化更改为
numbers = new int[2][25];
答案 1 :(得分:0)
简而言之,你的阵列还不够大。
您将数组声明为“new int [1] [25]”,这意味着,因为[1],只有一行。 但是在第15行你引用了第二行:“numbers [1] [i]”。
根据您的Fibonacci类名,您的代码显然有更多错误,但您的问题的解决方案是使您的数组更大:“new int [X] [25]”但是为X添加更大的代码。
答案 2 :(得分:0)
二维数组是numbers = new int[1][25];
第一个维度大小为1,这意味着你可以使用索引0
访问元素或设置值。所以将代码从numbers[1][i]
更改为{ {1}}