ArrayIndexOutOfBoundsException我的数组排序代码中的8个运行时异常

时间:2015-12-02 13:03:05

标签: java arrays sorting

我试图用Java创建一个数组排序程序。所以我创建了这个方法并尝试通过从另一个函数调用它来执行它。但是我得到了“ArrayIndexOutOfBoundsException 8”运行时异常。那么我该如何解决呢?

class arrayfunc {
    int[] ascend(int[] p) {
        int x = p.length;
        for (int i = 0; i <= (x - 1); i++) {
            int l = p[i];
            for (int j = i + 1; j <= x; j++) {
                int f = p[j];
                if (f > l) {
                    int k = p[i];
                    p[i] = p[j];
                    p[j] = k;
                }
            }
        }
        return p;
    }
}

2 个答案:

答案 0 :(得分:1)

你的内心循环

for(int j=i+1;j<=(x);j++)

应该是

for(int j=i+1;j<=(x-1);j++)

否则你会在这里得到一个ArrayIndexOutOfBoundsException:

int f=p[j];

当索引变量j达到x

的值时

答案 1 :(得分:0)

<=循环中将<替换为for

顺便说一下,Java永远不会赢得代码高尔夫。您可以扩展文字......