2017-04-09 77 views
-3
import java.io.*; 

public class Array { 

    public static void main(String args[]) { 

     int i = 0; 
     int add = 0; 

     int a[] = {4, 1, 1, -6}; 

     for (i = 0; i < a.length; i++) { 
      add = add + a[i]; 

      if (add - a[i + 1] == 0) { 
       System.out.println("exist"); 

      } 
     } 

    } 
} 

我得到如下錯誤:增加兩個元素等於下一個元素

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 
    at Arraylist1.main(Arraylist1.java:21) 
+0

在爲i等於則爲a.length端,那麼,你還沒有一個第[i + 1]的元素。 – M2E67

+0

並提示:您希望我們花時間幫助您。因此,請花費1分鐘時間來正確格式化/縮進所有輸入。那**預覽**部分接近編輯窗口,以及所有有幫助的解釋......那裏是有原因的! – GhostCat

回答

1

因爲您已經增加你的指數:

if (add - a[i + 1] == 0) { 
//----------^---^ 

爲您解決您的問題要迭代,直到a.length - 1代替a.length,因爲上次指數是3,所以當你試圖讓a[3+1]會拋出異常ArrayIndexOutOfBoundsException因爲這個指數不退出