2014-02-27 84 views
0

我的代碼:陣列被當作值忽略空

for (int i = 0; i < directory.length; i++) { 
    if (directory[i].contains (number)) { 
     if (directory[i+1] == null){ 
      directory[i] = null; 
     } 
     else { 
      for (int k=i; k<directory.length; k++){ 
       System.out.println(directory[k]); 
       System.out.println(directory[k+1]); 
       if (directory[i+1] != null){ 
        directory[k] = directory[k+1]; 
        System.out.println(directory[k]); 
       } 

我認爲重要的位是 「如果(目錄第[i + 1]!= NULL){」 什麼我使用是一個數組我試圖找到下一個元素是否爲空,然後執行代碼。但是,即使下一個值爲空,它仍然會執行。有什麼建議麼?

謝謝。

+0

這是一個'我'與''k'的錯字問題。 –

+0

對不起,沒有明確的問題,我現在已經解決了這個問題:) – user3006216

+4

我想你會在'i'循環的最後一次迭代中得到一個數組索引超出範圍錯誤,不是嗎? –

回答

1

你的問題是你沒有在你的循環中使用循環索引。您只是一次又一次地測試初始值的值。

if (directory[i+1] != null){ 

應該是這個

if (directory[k+1] != null){ 
1

目錄的下一個值[I + 1]是永遠不會爲null @「如果(目錄[I + 1]!= null){「因爲在else語句之前,你檢查是否目錄[i + 1] == null

我的猜測是迭代中的一個小錯字,也許你的ment目錄[k + 1]?