2017-04-09 75 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因为这个指数不退出