繁体   English   中英

Java:缺少返回语句错误

[英]Java: Missing return statement error

我需要创建一个国家的班级。 它的属性之一是一系列城市。 我需要编写一种方法,在给出城市名称时可以在数组中找到城市的扩展名(城市名称是其属性之一,可以使用getCityName()方法访问城市)。

我写了这段代码:

private int findCityExtensionByName (String cityName)
{
    for(int i=0 ; i<=MAXIMUM_NUMBER_OF_CITIES ;i++)
    {
        if (_cities[i].getCityName().equals(cityName))
            return i;      
    }
}

但是我得到了这样的编译错误:“缺少返回语句”。 关于如何解决这个问题,我一无所知。

如果还不清楚,我很抱歉,因为这是我第一次使用此网站。

您需要为方法的每个可能的执行路径添加一个return语句(没有人可以保证将执行for循环或存在一个与cityName相等的cityName ):

private int findCityExtensionByName (String cityName)
{
    for(int i=0 ; i<=MAXIMUM_NUMBER_OF_CITIES ;i++)
    {
        if (_cities[i].getCityName().equals(cityName))
            return i;      
    }
    return -1;
}

您必须返回一个值或引发异常,以防万一。

使用不可思议的值或引发适当的异常(例如IllegalArgumentException

private int findCityExtensionByName (String cityName)
{
    for(int i=0 ; i<=MAXIMUM_NUMBER_OF_CITIES ;i++)
    {
        if (_cities[i].getCityName().equals(cityName))
            return i;      
    }
    throw new IllegalArgumentException("Could not find the city");
}

不可思议的值是您不希望使用的值,而将使用它来表示“无”。 在您的情况下,最常识的是-1Integer.MIN_VALUE

如果使用返回类型声明的方法可以正常完成,则将导致编译器时间错误:它必须返回具有定义类型的值。 因此,在编译时不知道for循环是否可以执行计算并比较其条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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