2017-03-04 52 views
0

我正在使用只有1個數組和一個嵌套for循環來檢查重複的元素,並將它們轉換爲0.我有IndexBound問題,並不能完全告訴什麼是錯的。1個數組的片段來檢查重複元素

任何幫助?

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

是'in'掃描儀嗎? – UnknowableIneffable

+0

@UnknowableIneffible是啊 – Asker123

回答

2

這裏,嵌套for循環的增量爲i,而不是x。這意味着i在外部循環和內部循環中均超出了每次迭代的數組邊界。要解決此問題,請將其更改爲:

for (int x = i + 1; x < 20; x++) 
+0

好吧,所以這只是我的錯字。 – Asker123