继续在APlusCompSci中得到IndexOutOfBoundsException奇数到偶数数组问题[重复]

问题描述 投票:1回答:4

这个问题在这里已有答案:

问题:编写一个方法,检查数组是否有奇数后跟偶数。找到第一个奇数。然后,在找到奇数后,开始查看该位置的偶数,然后返回它们之间的距离。如果没有奇数或没有奇数后跟偶数,则返回-1。

数据:包含0个或更多值的数组。该数组不会指向null。

输出:返回距离或-1。

样本数据:

7, 5, 10, 12

3, 5, 7, 1

2, 4, 3, 8, 10, 12

11

5, 3, 11, 6, 7, 11, 8

样本输出

2

-1

1

-1

3


以下是apluscompsci.com对问题的介绍。这个问题是我在AP计算机科学课上分配给学生的问题。所以,我对这个问题的代码如下:

int go( int[] array ) 
{
    int o = 1;
    int e = 0;
    int distance = e-o;
    if(array.length==0)
    {
        return distance;
    }
    for(int a = 0, y = 0; a < array.length || y<1; a++)
    {
        if(array[a]%2==1)
        {
            y++;
            o = a;
            for(int b = a + 1, x = 0; b < array.length || x<1; b++)
            {
                if(array[b]%2==0)
                {
                    x++;
                    e = b;
                }
            }
        }
    }
    if(e==0)
    {
        o=1;
    }
    return distance;
}

出于某种原因,我为解决问题而构建的代码不断触发“java.lang.ArrayIndexOutOfBoundsException”错误。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 13
at Submission.go(typed.java:30)
at Submission.main(typed.java:9)

但是,这是不可能的,因为我以最抽象的方式编写了这个解决方案,而我的for循环从不请求不存在的索引。甚至老师或房间里最聪明的孩子都没有帮我找到,我已经调整了这段代码将近3天。我已经尝试通过重构Eclipse中的代码进行故障排除,如果这个网站的JavaScript可能不支持我使用的一些额外技术,例如我的for循环中的多变量启动和or运算符,但它会回吐相同的错误。

另外,这是我在这个网站上的第一个问题!我其实只是想问一下这个问题,哈哈!希望我把一切都简单明了 - 提前感谢任何帮助!

java arrays indexoutofboundsexception
4个回答
© www.soinside.com 2019 - 2024. All rights reserved.