我正在努力只使用1个数组和一个嵌套的for循环来检查重复的元素并将它们变为0.我有一个IndexBound问题并且无法确定错误。
任何帮助?
int data[] = new int[20];
for(int i = 0; i < data.length; i++) {
data[i] = in.nextInt();
}
for (int i = 0; i < 18; i++) {
for (int x = i + 1; x < 20; i++) {
if (data[i] == data[x]) {
data[x] = 0;
}
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 20
at Arrays.Prog415h.main(Prog415h.java:47)
if (data[i] == data[x]) {
答案 0 :(得分:2)
此处,嵌套for循环的增量为i
而不是x
。这意味着i
超出了外循环和内循环的每次迭代的数组边界。要解决此问题,请将其更改为:
for (int x = i + 1; x < 20; x++)