2017-02-08 272 views
-3

對於我的任務,我們被要求添加一個手冊IndexOutOfBoundsException。拋出異常

public int get(Object[] objArr){ 
    size = objArr.length; 
    for(int i = 0; i < size; i++) 
     if(objArr[i] < 0 || objArr[i] > objArr.length) 
     { 
      throw new IndexOutOfBoundsException("I must be greater than 0 and less than " + size); 
     } 

我試圖通過望得到的代碼迴路和檢查小於0的數字和他們的指數是由用戶聲明數組之外。我的if語句出錯了,想知道如何解決這個問題。

if(i < 0 || i >= objArr.length) 
+4

* 「我得到一個錯誤」 * - 什麼樣的錯誤?可能你不能比較'Object'和'int'?! – luk2302

+2

您似乎將數組中的「i」索引與該數組中的值「objAr [i]」混淆。 –

+0

你能告訴我這將如何編譯if(objArr [i] <0 || objArr [i]> objArr.length) –

回答

0

你有你的時候拋出異常:

+1

它應該是'i> =大小'@xander提 – Absolut

+0

是的,這是正確的,編輯 – Zeromus

0

拳,你進入了循環,第二你需要檢查的指標,而不是對象的索引值之前,你應該拋出的厚望得到一個輸入索引i,即< 0或>大於數組的大小。

像:

public void get(Object[] objArr, Integer i){ 
    size = objArr.length; 
    if(i<0 || i >= size){ 
     throw new IndexOutOfBoundsException("I must be greater than 0 and less than " + size); 
    } 
}