2014-07-07 37 views
-4

我想通過在每個循環中減去初始化的值來在數組中放置一個整數。這段代碼對我來說似乎很合適,但編譯器總是聲稱「索引超出了數組的範圍」。我在這裏做錯了什麼,特別是在itr部分?Index OutOfRangeException

static void Main() 
    { 
     int itr = 0; 
     int[] arr = {}; 

     for(int i = 2305; i > 0; i-=576) 
     { 
      arr[itr] = i; 
      itr+=1; 
     } 

     Console.ReadLine(); 
    } 
+3

你認爲數組'arr'的大小/長度是多少? (提示:檢查'arr.Length'的值) – elgonzo

+0

數組大小是4,但在循環內部是5?我試圖在每個循環中減1,但仍然不起作用 – joshsoriano89

+3

*「數組大小爲4」*您怎麼知道這一點? (提示:根據你問題中的代碼,它不是......) – elgonzo

回答

2

這行創建一個空數組(所以Length是):

int[] arr = {}; 

您應該指定一個大小爲您array.In的情況下,大小可能是:

int[] arr = new int[2305/576 + 1]; 
0

你的int數組'arr'長度爲0; 由於您未設置大小或值,因此數組根本沒有值。

這是一個可以工作的迭代;

int[] arr = new int[ 1000 ]; 
int itr = 2305; 

for (int i = arr.Length-1; i > -1; i--) { 
    itr -= 576; 
    arr[ i ] = itr; 
}