晚上好帮派:)! 只是想知道是否有人能在这里发现我做错了什么?我已经制作了一个数组排序器,如果找到重复项,它会更改其中一个数组值。代码在这里
for (int j = 0; j < arrayIn.length; j++){
int temp = j++;
if (arrayIn[j] == temp)
arrayIn[j] = DUPLICATEREMOVE;
}
其中DUPLICATEREMOVE是在70处初始化的最终int。我编写了一个简单的测试程序并且编译它按预期工作,但是当我运行它时会抛出一个数组索引超出范围的异常。 在进一步挖掘后,我也知道如果我注释掉这一行:
arrayIn[j] = DUPLICATEREMOVE;
然后程序按预期工作。所以从这一行抛出异常。我也改变了语句来改为显示常数,即:
arrayIn[j] = 7;
int temp也是一个实验,就像if条件读为:
之前 if (arrayIn[j] == arrayIn[j++])
我认为可能会抛出错误。 我有点陷入我做错的事情,所以如果有人能发现我做错了什么就会非常感激:)! 感谢。
答案 0 :(得分:4)
您正在递增j
两次。取代
int temp = j++;
与
int temp = j+1;
答案 1 :(得分:0)
也许使用int temp = j + 1
代替j++
?我觉得你每次循环增加两次j等等。