我一直在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;在我的代码中。
答案 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)
由于您的if
和else
条件属于for循环,因此。
for循环本身就是一个条件循环。
如果if
或else
未得到保留,可能会出现这种情况。
你需要在for循环之外返回一个布尔值。
示例方案: 的&#39; H&#39;是一个空字符串。
编辑:根据您的陈述&#34; h&#34;是&#34; Hello world&#34;在我的代码中,在编译时,编译器没有查看传递给&#39; h的值。 您的比较方法是一种个人身份,并且完全不限于一次性使用。
答案 2 :(得分:0)
因为你的for循环i < h.length()
如果h.length()
是0
,那么for循环中的代码是无法访问的,所以它显示错误的return语句错误。