方法中的数组

时间:2013-11-23 07:55:21

标签: java arrays methods

我正在按照以下说明进行作业,

编写一个方法,当传递整数搜索值时,如果搜索值在数组中,则整数数组将返回true,否则返回false。调用方法并在main中打印结果。

这是我到目前为止所拥有的,

public class ArrayLab {
  public static void main(String[] args) {
    int[] array = {15, -2, 18, -9, 90, 17, 981};
    int index;   
 boolean isThere = searchValue(15, array);
    System.out.println(isThere);

public static boolean searchValue(int search, int[] array) {
    Scanner input = new Scanner(System.in);
    boolean isThere = true;
    for(int index = 0; index < array.length; index++) {
          if (search == array[index])
           isThere = true; 
          else
            isThere = false; } // end for

 return isThere;
   } // end searchValue 

} // end class

我所遇到的问题因我改写这个问题的几种方式而有所不同。就像现在一样,我没有收到任何错误,但无论从main传递给方法的是什么数字,返回的值总是假的。

我非常感谢任何关于如何纠正这个问题的建议。

6 个答案:

答案 0 :(得分:4)

找到号码后你需要休息。否则,您还会继续检查其他数字。因此,如果最后一个数字将返回false,您只会看到“false”

for(int index = 0; index < array.length; index++) {
    if (search == array[index]) { 
        isThere = true;
        break; 
    } else
        isThere = false; 
    }
} 

答案 1 :(得分:1)

按如下方式更改你的for循环,你需要在遇到元素时打破循环,否则循环将一直持续到最后一个元素

for(int index = 0; index < array.length; index++) {
          if (search == array[index])
           isThere = true;
           break; 
          else
            isThere = false; } 

答案 2 :(得分:1)

一旦发现值匹配,就会错过break

答案 3 :(得分:1)

1)由于您在main方法中编写了另一个方法,因此您的代码将无法编译。这是编译器错误

2)从找到结果时需要return。现在它正在进一步检查。

简化,就像

public static boolean searchValue(int search, int[] array) {
    for(int index = 0; index < array.length; index++) {
          if (search == array[index])
              return true;
     }      
     return false;
} 

答案 4 :(得分:1)

找到号码后,您应该返回true。当然,如果你不能,你应该返回false。所以我想你想要这样的东西

public static boolean searchValue(int search, int[] array) {
  if (array != null && array.length > 0) {
    for (int i : array) {
      if (i == search) {
        return true;
      }
    }
  }
  return false;
}

答案 5 :(得分:1)

我看到如果条件成功,那么我们应该打破循环并返回。缺少