2013-10-29 48 views
0
的元素

public static boolean linearSearch(int[] array, int target):此方法應該採取作爲輸入的INT 陣列以及一個 INT 。應該返回 true 如果元素 目標 存在 在 數組 。它應該通過逐個檢查 數組 中的每個元素,從數組的開頭開始依次從布爾檢測陣列

開始,直到結束。如果元素不存在,則該方法應返回 假 。

public class ArrayUtilities{ 
    public static void main(String[] args){ 
    int[] array1= {1,2,3,4,5}; 
    int target1 = 2; 
    linearSearch(array1,target1); 
    } 

    public static boolean linearSearch(int[] array, int target){ 
     int x=0; 
     for(int i = 0; i< array.length; i++){ 
     if(array[i] == target){ 
      return true; 
    } 
     else{ 
      x++; 
     } 
     } 
     if(x == 0){ 
     return false; 
     } 
     return linearSearch;//**error here!** 
} 
} 

這是我爲這個問題寫的代碼。但是我在返回linearSearch時出錯。 我不明白爲什麼。 預先感謝您!

的錯誤說: 符號:變量linearSearch 地點:類ArrayUtilities

+2

什麼錯誤?什麼錯誤?什麼錘子?什麼鏈? – Taylor

+0

這不是一個神祕的錯誤消息。它告訴你它不知道linearSearch是什麼。 – Cruncher

回答

2

如果您找到匹配項,您立即返回true是件好事。

但我不明白x變量的目的。我會完全刪除它(並從if中刪除else)。

如果你完成for循環,那麼你還沒有找到它,你可以在那裏返回false。行return linearSearch沒有任何意義。在for循環結束後只有一行:return false;

+0

「它應該這樣做,通過逐次檢查數組之一的每個元素開始」我必須迭代我認爲的每個值。 – user2826974

+0

但感謝您的回答,它真的有幫助! – user2826974

+0

但是,一旦你找到了它,無論內容的其他部分如何,它總是「真實的」,所以你可以在那裏停下來並返回'true',就像你已經完成了一樣。 – rgettman

0

return語句需要有後一個布爾值或變量。 linearSearch(沒有任何參數)既不是那些。

0

決定你想要返回,我看到你正在返回true,即,布爾值,你也試圖返回線性搜索,我不知道那是什麼。它必須是真或假。

1

爲什麼有條件的「其他」在最後?如果你的循環沒有找到任何匹配就結束,返回false,只要你找到匹配就返回true。我的意思是,只要你找到匹配,就返回true,如果你沒有找到任何東西就結束迭代,返回false。

public static boolean linearSearch(int[] array, int target){ 
     for(int i = 0; i< array.length; i++){ 
     if(array[i] == target){ 
      return true; 
    } 
    } 
    return false; 
    } 
0
public boolean check; 
public static boolean linearSearch(int[] array, int target){ 
    check = false; 
    for(int i = 0; i < array.length; i++){ 
     if(array[i] == target){ 
      check = true; 
     } 
    } 
    return check; 
} 
+4

代碼沒有真正解釋OPs解決方案的問題,是相當無益的。要麼他不明白你在做什麼,要麼直接複製它。這兩者都不是OP中最有利的。 – Cruncher