2013-10-15 38 views
0

這是我得到指數走出束縛異常的代碼,我不明白爲什麼,ArrayIndexOutOfBound異常

int index = array.length - 1; 
E item = array[index]; 

    while (item == null && index >= 0) { 
    index--; 
    item = array[index]; 
    } 

我得到java.lang.ArrayIndexOutOfBoundsException:在 項目-1 =陣列[指數]; 我不知道我出錯的地方。任何人都可以請幫忙。

+1

把減量陣列的訪問之後。即將'index - '向下移動 –

回答

1
while (item == null && index >= 0) { 
    index--; 
    item = array[index]; 
} 

應該

while (item == null && index >= 0) { 
    item = array[index--]; 
} 
0

在過去的循環運行指數是0,這是條件如此。 然後你遞減到-1並嘗試訪問該位置的數組元素。

0
int index = array.length - 1; 
E item = array[index]; 

    while (item == null && index >= 0) { 
    index--; 
    item = array[index]; 
    } 

在這裏,你首先遞減index你該索引訪問element之前。當index = 0,你先遞減指數達到-1array[-1]給你java.lang.ArrayIndexOutOfBoundsException

int index = array.length - 1; 
    E item = array[index]; 

     while (item == null && index >= 0) {  
     item = array[index]; 
     index--; 
     } 

這應該爲你工作。

0

在使用索引作爲指向數組中對象的指針之前,while循環將遞減。這將導致指向-1,並會給你空指針異常。

嘗試在item = array [index]後放置遞減;

0

這應該工作

int index = array.length - 1; 
E item = array[index]; 

    while (item == null && index > 0) { 
    index--; 
    item = array[index]; 
    } 
相關問題