我正在按照以下说明进行作业,
编写一个方法,当传递整数搜索值时,如果搜索值在数组中,则整数数组将返回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传递给方法的是什么数字,返回的值总是假的。
我非常感谢任何关于如何纠正这个问题的建议。
答案 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)
我看到如果条件成功,那么我们应该打破循环并返回。缺少