我正在尝试编译一个程序,该程序在数组中搜索特定元素int target
。它需要是一个 public static boolean 方法,但我所拥有的代码无法打印返回值。为什么是这样?难道我没有考虑到所有的情况吗?感谢您的任何意见,我确信这一定是我忽略的小事情。
代码:
public static void main(String[] args)
{
int[] array = {3, 6, 9, 12, 15, 19, 21, -1, -45, 0};
int target = 2;
}
public static boolean linearSearch(int[] array, int target)
{
boolean linearSearch = false;
for (int i = 0; i < array.length; i++){
if(array[i] == target){
linearSearch = true;
}
else{
linearSearch = false;
}
}
return linearSearch;
}
}
此外,除了这一点之外,是否可以将其编码为以下内容?
public class ArrayUtilities
{
public static void main(String[] args)
{
int[] array = {3, 6, 9, 12, 15, 19, 21, -1, -45, 0};
int target = 2;
}
public static boolean linearSearch(int[] array, int target)
{
boolean linearSearch = false;
for (int i = 0; i < array.length; i++){
if(array[i] == target){
linearSearch = true;
}
return linearSearch;
}
}
最佳答案
除了不在 main
方法中调用 linearSearch
函数之外,您的 linearSearch
的第一个版本可能会返回 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;
}
}
您还需要在主方法中调用它:
public static void main(String[] args)
{
int[] array = {3, 6, 9, 12, 15, 19, 21, -1, -45, 0};
int target = 2;
if(linearSearch(array,target)) {
System.out.print("found");
}
}
您的第一个版本的问题是,可以在 for
循环的第二次迭代中找到一个项目,您的 bool linearSearch
将设置为 true
,但如果该项目不存在于数组末尾,您将得到 false
结果,因为 else
部分将设置为对于数组中的所有其他元素,false
。
关于java - 返回类型 Boolean,无法打印值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19641215/