【发布时间】:2015-06-16 13:38:28
【问题描述】:
我正在使用 for 循环来检查我作为参数输入的数组在整数方面是否有更多的起伏。我不知道为什么,但我的编译器抛出了一个索引越界异常。如果有人能指出来就好了。
public boolean moreUpsThanDowns(int[] a)
{
int counterup = 0;
int counterdown = 0;
for(int i=0 ; i <= a.length ; i++){
if (a[(i+1)] - a[i] > 0 ){
counterup++;
} else if(a[(i+1)] - a[i] < 0 ){
counterdown++;
} else if(a[(i+1)] - a[i] == 0 ){
counterup = counterup;
counterdown = counterdown;
}
}
if (counterup > counterdown){
return true;
} else {
return false;
}
}
【问题讨论】:
-
它waay 超出范围。你让
i运行到a.length尽管最后一个有效索引是a.length-1并且你正在使用a[i+1]进行索引,所以你至少少了两个。 -
将“int i=0 ; i
-
你应该用 for(int i=0 ; i