2016-04-09 38 views
0

界失誤我是新來的Java和我寫了一個簡單的程序,計算3低於10 的倍數的,我不知道爲什麼我得到數組出界異常的總和獲取陣列退房的Java

int a[] = {},j = 0,sum = 0; 
     for(int i=1;i<=10;i++) 
     { 
      if ((i % 3) == 0) 
      { 
      a[j] = i; // Here, i am getting the exception 
      j++; 
      } 
     } 
     for(int i1=0;i1<j;i1++) 
     { 
      sum = sum + a[i1]; 
     } 
     System.out.println(sum); 
    } 
+2

定義a的數組大小。 – Rao

+1

數組是靜態的。由於您將其定義爲在'int a [] = {}'中具有'0'值,您將通過嘗試設置數組中任何索引的值來獲得'outOfBoundsException'。您需要設置數組的值或設置數組的大小(在這種情況下,所有位置都將自動填充'0')。 – Zulfe

+0

非常感謝。我相信這個論壇太愚蠢 –

回答

3

下面是解決方案。你只是缺少定義數組的大小。希望能幫助到你 :)。

public final class Program { 

public static void main(String[] args) { 

    int a[] = new int[10] , j = 0, sum = 0; 
    for (int i = 1; i <= 10; i++) { 
     if ((i % 3) == 0) { 
      a[j] = i; // Here, i am getting the exception 
      j++; 
     } 
    } 
    for (int i1 = 0; i1 < j; i1++) { 
     sum = sum + a[i1]; 
    } 
    System.out.println(sum); 
} 
}