0

我正在尝试运行我的代码,它说明了异常:

java.lang.ArrayIndexOutOfBoundsException

我用谷歌搜索了它,据我了解,当我尝试访问一个负数或大于我的数组长度的索引时会发生这种情况。但我似乎找不到问题,这是我的代码: http: //pastebin.com/sXsBbYfh

感谢任何帮助者。

编辑:错误信息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Calculator.addOne(Calculator.java:127)
at Calculator.add(Calculator.java:88)
at Program.main(Program.java:8)

关于代码的相关部分,我不知道,这就是我来找你的原因。

4

2 回答 2

3

问题似乎与第 86 行有关

  arrResult = this.addOne(arrResult.length);

数组索引是基于 0 的,所以 0 - length-1 并且您正在传入长度,然后使用它在第 127 行访问您的数组

  switch(arrResult[arrayIndex])
于 2012-11-27T19:08:41.180 回答
0

这部分代码:

public int[] addOne(int arrayIndex)

 124.
        {

 125.
                switch(arrResult[arrayIndex])

 126.
                {

 127.
                        case 0:

 128.
                                arrResult[arrayIndex] = 1;

是错误的来源。

注意。

在java中,数组索引范围从0到length-1

在上面的代码中,当addon()调用方法时,您将数组长度作为参数传递,而在上面的代码中,您试图访问array[length]不存在的,因此出现异常。因此,您可能希望保留它length-1

在以下代码行 #86

    arrResult = this.addOne(arrResult.length);

您的代码中有很多逻辑错误。这只是引发您提到的异常的那个

于 2012-11-27T19:12:35.437 回答