我正在尝试运行我的代码并且它说明了异常:
java.lang.ArrayIndexOutOfBoundsException
我用google搜索它,据我所知,当我尝试访问一个负数或大于数组长度的索引时会发生这种情况。 但我似乎无法找到问题,这是我的代码: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)
关于代码的相关部分,我不知道,这就是我要来找你的原因。
答案 0 :(得分:3)
问题似乎是第86行
arrResult = this.addOne(arrResult.length);
数组索引是基于0的,所以0 - 长度为1并且您正在传入长度,然后使用它来访问第127行上的数组
switch(arrResult[arrayIndex])
答案 1 :(得分: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);
您的代码中存在许多逻辑错误。这只是抛出你提到的异常的那个