簡體   English   中英

布爾以檢測數組中的元素

[英]boolean to detect an element in array

public static boolean linearSearch(int[] array, int target) :此方法應將int和int數組作為輸入。 如果元素目標存在於array中,則應返回true。 它應該通過順序檢查一次數組的每個元素來做到這一點

從數組的開始到結束。 如果該元素不存在,則該方法應返回false。

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

找到匹配項后立即返回true很好。

但是我不明白x變量的目的。 我將其完全刪除(並從if刪除else )。

如果您完成了for循環,則找不到它,可以在此處返回false 該行return linearSearch沒有任何意義。 for循環結束后只有一行: return false;

為什么最后要有條件的“其他”? 如果循環結束而未找到任何匹配項,則返回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;
  }

return語句后面必須有一個布爾值或變量。 linearSearch(不帶任何參數)都不是這些。

確定要返回的內容,我看到您返回的是true,即布爾值,也正在嘗試返回線性搜索,我不知道那是什么。 它必須為true或false。

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM