[英]Error: Missing return statement in Java
试图遍历数组,如果名称在数组中,则希望它返回true,否则,则返回false。
public boolean ifInArray(String name)
{
for ( Dog breed: breeds) {
if (breed.equals(name)) {
return true;
} else {
return false;
}
}
}
函数必须具有返回值的所有可能性。 认为如果for循环未在某些条件下执行,那会发生什么? 所以你给所有可能的回报价值
public boolean ifInArray(String name)
{
for ( Dog breed: breeds) {
if (breed.equals(name)) {
return true;
} else {
return false;
}
}
return false;
}
您仅查看数组“繁殖”中的第一个条目,并立即返回true / false值。 您需要遍历每个元素,并且只有在找到匹配项时才返回true。 否则,返回false。
public boolean ifInArray(String name) { for ( Dog breed: breeds) { if (breed.equals(name)) return true; } return false; }
删除else块,并在循环结束后放置return false
。 如果找到一个值,它将从循环内部返回true。 如果找不到任何内容,则在循环结束后将返回false。
如果第一个品种不匹配,您当前的实现将返回false,而不是对照所有品种进行检查。
您可以将布尔值存储在变量中,然后只返回变量。
public boolean ifInArray(String name)
{
Boolean result = null;
for ( Dog breed: breeds ) {
if (breed.equals(name)) {
result = true;
} else {
result = false;
}
}
return result;
}
您的if内部有返回值,因此无法直接通过该方法访问。 必须有一个默认的if,尤其是因为您在if循环中有if时。 考虑字符串为空的情况,该方法将无任何返回值。
这样写你的方法:
public boolean ifInArray(String name)
{
for ( Dog breed: breeds) {
if (breed.equals(name)) {
return true;
} else {
return false;
}
}
return false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.