我试图用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;
}
}
答案 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永远不会赢得代码高尔夫。您可以扩展文字......