好的,所以我的代码错误,试图计算数组中每个整数的数量。所以我不知道如何解决它。我在底部的while循环上得到错误。任何帮助,将不胜感激。感谢。
if (ndx != array.length)
while (array[ndx] == array[ndx + 1])
ndx++;
答案 0 :(得分:1)
在外部for循环的最后一次迭代中,ndx比array.length少一个,所以当你调用array [ndx + 1]时,这相当于array [array.length],它超出了界限,因为数组从0开始索引。将底部if语句更改为:
if (ndx != array.length-1)
应该做的伎俩。
它也在最后的while循环中递增ndx,所以应该有一个条件来检查它:
while(ndx != array.length-1 && array[ndx]==array[ndx+1])
既然你现在处理了array.length-1条件,你就可以摆脱上面那行中的那个条件。 希望有所帮助!
答案 1 :(得分:0)
由于这行代码,你得到了例外:
while (array[ndx] == array[ndx + 1])
在循环的最后一次迭代中,ndx等于array.length - 1
当您尝试访问array[ndx + 1]
时,您正试图访问超出范围的数组索引。
您应该将while循环上方的 if语句更改为:
if (ndx != array.length - 1)