java - 返回类型 Boolean,无法打印值

标签 java arrays boolean return

我正在尝试编译一个程序,该程序在数组中搜索特定元素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/

相关文章:

Java DecimalFormat 在强制执行指数符号时会产生错误

javascript - 将对象插入到数组 Javascript/JQuery 的特定位置

MySQL:从 Boolean 到 Tinyint(1) 再返回

c++ - 使用 bool 类型转换 : unexpected behaviour 的变量原始打印

Java - 为什么我的素数程序不打印最后一个数字?

java - 使用正则表达式解析log4j日志文件

java - 使用三元运算符 (`?` 时,Java 是否无法推导出泛型类型参数?

c - 使用 **ptr 将多维数组传递给函数

Java:将类的集合转换为B类的集合

javascript - Ramda - 过滤对象数组 - 柯里化(Currying) fn 参数顺序