繁体   English   中英

错误:Java中缺少返回语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM