【发布时间】:2013-10-27 19:20:26
【问题描述】:
我正在编写一个简单的程序,如果数组排序为 false,则返回 true,并且我在 Eclipse 中不断收到异常,但我不知道为什么。我想知道是否有人可以查看我的代码并解释为什么我得到一个数组越界异常。
public static boolean isSorted(int[] a)
{
int i;
for(i = 0; i < a.length; i ++);{
if (a[i] < a[i+1]) {
return true;
} else {
return false;
}
}
}
public static void main(String[] args)
{
int ar[] = {3,5,6,7};
System.out.println(isSorted(ar));
}
【问题讨论】:
-
运行你的代码。您有 4 个条目,应该很简单。
i在某个时候会等于 3,a[3+1] 会尝试访问什么? -
检查你的索引范围
-
另请注意,代码并没有按照你说的做。如果有两个或多个连续的有序元素,则返回 true,但不一定全部。
-
提示从 i=1 开始循环,如果长度 >1 则比较更低
标签: java arrays sorting traversal