尝试 return 布尔值时缺少 return 语句

Missing return statement when trying to return a boolean value

我一直在 java 中收到错误,我不知道为什么 "missing return statement"。我想要做的是创建一个带有两个参数(String 和 char)的方法,检查 char 是否出现在字符串中,return 是基于比较的布尔值。这是我目前所拥有的:

  public static boolean compare(String h, char x){

int counter = 0;
for(int i = 0; i < h.length(); i++){
  counter++;
  if(h.charAt(i) == 'o'){
    return true;
  }
  else
    return false;
}

  }

同样,控制台中的错误是 "missing return statement"。 请注意,我不是 Java 方面的专家,我的代码中可能有更多错误,对此我提前表示歉意。

编辑:不要看缩进,我只是把代码复制粘贴到这里。 编辑 2:"h" 在我的代码中是 "Hello world"。

那是因为您的 ifelse 条件处于 for 循环中。 for循环本身就是一个条件循环。

如果您的 ifelse 仍未到达,可能会出现这种情况。 您需要在此处的 for 循环之外 return 一个布尔值。

示例场景: 'h' 是一个空字符串。

编辑: 根据你的说法 "h" 在我的代码 中是 "Hello world",当时在编译过程中,编译器不会查看传递给 'h' 的值。 您的compare方法是个人身份,完全不限于一次使用。

您应该将布尔结果分配给一个变量,而不是 return 在循环中对其进行处理。在 for 循环之后添加 return 语句,这应该可以解决您的问题。 HTH

 public static boolean compare(String h, char x){

       int counter = 0;
       boolean flag = false;

       for(int i = 0; i < h.length(); i++){
         counter++;
         if(h.charAt(i) == 'o'){
             flag = true;
         }
         else
             flag = false;
       }
        return flag;
}

因为你的 for 循环 i < h.length() 如果 h.length()0 那么 for 循环中的代码是不可访问的,所以它显示缺少 return 语句的错误。