2013-10-29 2 views
0

public static boolean linearSearch(int[] array, int target): Этот метод должен принимать в качестве входного массива значение int , а также int . Он должен вернуть true если элемент мишень присутствует в массив . Он должен сделать это, изучив каждый элемент массива по одному последовательно, начиная сboolean для определения элемента в массиве

от начала массива до конца. Метод должен возвращать 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

+2

Какую ошибку? Какая ошибка? Какой молот? Какая цепь? – Taylor

+0

Это не критическое сообщение об ошибке. Он сообщает вам, что он не знает, что такое linearSearch. – Cruncher

ответ

2

Хорошо, что вы немедленно возвращаетесь к истине, если найдете совпадение.

Но я не понимаю цели переменной x. Я полностью удалю его (и удалю else с if).

Если вы закончите цикл for, то вы не нашли его, и вы можете вернуть false прямо здесь. Строка return linearSearch не имеет никакого смысла. Имеет только одну строку после окончания цикла for: return false;.

+0

«Он должен сделать это, исследуя каждый элемент массива один за раз, последовательно начиная« Я должен повторять каждое значение, которое я думаю. – user2826974

+0

, но спасибо за ваш ответ, это действительно помогает! – user2826974

+0

Но как только вы его найдете, он всегда будет «истинным», независимо от остальной части содержимого, поэтому вы можете остановиться там и вернуть «истину», как вы уже это сделали. – rgettman

0

Возвращение заявление должно иметь логическое значение или переменной после нее. linearSearch (без каких-либо параметров) не является ни тем, ни другим.

0

Решите, что вы хотите вернуть, я вижу, что вы возвращаете true, то есть, boolean, также вы пытаетесь вернуть линейный поиск, я не знаю, что это такое. Это должно быть истинным или ложным.

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

Смежные вопросы