尝试 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"。
那是因为您的 if
和 else
条件处于 for 循环中。
for循环本身就是一个条件循环。
如果您的 if
或 else
仍未到达,可能会出现这种情况。
您需要在此处的 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 语句的错误。
我一直在 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"。
那是因为您的 if
和 else
条件处于 for 循环中。
for循环本身就是一个条件循环。
如果您的 if
或 else
仍未到达,可能会出现这种情况。
您需要在此处的 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 语句的错误。