[英]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");
}
不可思议的值是您不希望使用的值,而将使用它来表示“无”。 在您的情况下,最常识的是-1
和Integer.MIN_VALUE
。
如果使用返回类型声明的方法可以正常完成,则将导致编译器时间错误:它必须返回具有定义类型的值。 因此,在编译时不知道for
循环是否可以执行计算并比较其条件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.