好的,所以我的代码出现错误,试图计算数组中每个整数的数量。所以我不知道如何解决它。我在底部的 while 循环中遇到错误。任何帮助,将不胜感激。谢谢。
if (ndx != array.length)
while (array[ndx] == array[ndx + 1])
ndx++;
好的,所以我的代码出现错误,试图计算数组中每个整数的数量。所以我不知道如何解决它。我在底部的 while 循环中遇到错误。任何帮助,将不胜感激。谢谢。
if (ndx != array.length)
while (array[ndx] == array[ndx + 1])
ndx++;
在外部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 条件,因此您可以摆脱上述行中的 if 条件。希望有帮助!
由于这行代码,您会得到异常:
while (array[ndx] == array[ndx + 1])
在循环的最后一次迭代中,ndx 等于array.length - 1
当您尝试访问时,array[ndx + 1]
您正在尝试访问超出范围的数组索引。
您应该将 while 循环上方的if 语句更改为:
if (ndx != array.length - 1)