多维数组索引越界Java

多维数组索引越界Java,java,arrays,Java,Arrays,我需要帮助找出此代码的确切错误: 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:

我需要帮助找出此代码的确切错误:

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]);
        }
    }
}
我可以看到我的数组索引在第15行超出了范围,但我不知道如何修复它:/ 感谢您的帮助。:)
这里新增了

第15行和第16行都有

数字[1][i]
,但这会引发一个异常,因为第一个维度的大小只有1。尝试将两者都更改为
数字[0][i]

或者,根据您试图执行的操作,您可以将数组的初始化更改为

numbers = new int[2][25];

第15行和第16行都有
数字[1][i]
,但这会引发异常,因为第一个维度的大小只有1。尝试将两者都更改为
数字[0][i]

或者,根据您试图执行的操作,您可以将数组的初始化更改为

numbers = new int[2][25];

简而言之,您的阵列不够大

您将数组声明为“new int[1][25]”,这意味着由于[1],只有一行。 但在第15行,您引用了第二行:“数字[1][i]”


基于Fibonacci类名的代码显然有更多的错误,但解决当前问题的方法是将数组变大:“new int[X][25]”,但为X添加更大的值。

简而言之,数组不够大

您将数组声明为“new int[1][25]”,这意味着由于[1],只有一行。 但在第15行,您引用了第二行:“数字[1][i]”


基于Fibonacci类名的代码显然存在更多错误,但解决当前问题的方法是将数组变大:“new int[X][25]”,但将X的值变大。

二维数组是
numbers=new int[1][25]
第一维度大小为1,这意味着您可以访问元素或使用索引
0
设置值。因此,将代码从
numbers[1][i]
更改为
numbers[0][i]
二维数组为
numbers=new int[1][25]
first dimension size为1,这意味着您可以访问元素或使用索引
0
设置值。因此,将代码从
numbers[1][i]
更改为
numbers[0][i]

numbers[1][i]应该是数字[0][i]?您只有一行,记得吗?在您的示例中也不需要二维数组。只需删除第一个无用的维度。啊,谢谢。:)我确实需要这两个维度,因为这是我们学校的实践活动理念。是的,每个人都需要练习使用错误的设计来解决问题。塑造性格,或者其他什么。说真的,我想知道提出此活动的人是否仔细考虑了。数字[1][I]应该是数字[0][I]?您只有一行,记得吗?在您的示例中也不需要二维数组。只需删除第一个无用的维度。啊,谢谢。:)我确实需要这两个维度,因为这是我们学校的实践活动理念。是的,每个人都需要练习使用错误的设计来解决问题。塑造性格,或者其他什么。说真的,我想知道提出此活动的人是否仔细考虑了。请注意,如果您确实想要两行,则必须对代码进行其他更改。如果只更改了
new int
,则写入的代码将无法正确显示序列。请注意,如果确实需要两行,则必须对代码进行其他更改。如果仅更改
new int
,写入的代码将无法正确显示序列。