2013-10-29 46 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