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

时间:2017-11-30 06:22:37

标签: java return statements

我一直在java中遇到错误而且我不知道为什么"缺少return语句"。我想要做的是创建一个带有两个参数(String和char)的方法,检查字符串是否出现在字符串中,并根据比较返回一个布尔值。这就是我到目前为止所拥有的:

  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;
}

  }

同样,控制台中的错误是&#34;缺少return语句&#34;。 请注意,我不是Java方面的专家,可能我的代码中有更多错误,我提前为此道歉。

编辑:不要查看缩进,我只是复制并粘贴代码。 编辑2:&#34; h&#34;是&#34; Hello world&#34;在我的代码中。

3 个答案:

答案 0 :(得分:2)

您应该将布尔结果赋值给变量,而不是在循环中返回它。在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;
}

答案 1 :(得分:0)

由于您的ifelse条件属于for循环,因此。 for循环本身就是一个条件循环。

如果ifelse未得到保留,可能会出现这种情况。 你需要在for循环之外返回一个布尔值。

示例方案:&#39; H&#39;是一个空字符串。

编辑:根据您的陈述&#34; h&#34;是&#34; Hello world&#34;在我的代码中,在编译时,编译器没有查看传递给&#39; h的值。 您的比较方法是一种个人身份,并且完全不限于一次性使用。

答案 2 :(得分:0)

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