错误:缺少return语句 - java中的条件方法

时间:2014-01-27 17:35:23

标签: java string methods return

private static final String string1= "food budget-$3.00 per day or $10.00 per week.";
private static final String string2 = "food budget 2 - $2.00 per day or $7.00 per week.";
private static final String string3 = "food budget 3 - $1.00 per day or $5.00 per week.";
private static final String string4 = "food budget 4 - $%4.2f per day or $%5.2f per week.";

private static String calcRateClass(int cat, String food)
{
  while(gender.equals("m"))
     if(cat > 32 && cat < 64)
        return string1;
  if(cat > 24 && cat < 31)
     return string3;
  if (cat > 65)
     return string4; 
  else
     while(gender.equals("f"))
        if(age > 29 && age < 63)
           return string1;
  if(age > 24 && age < 30)
     return string2;
  if (age > 62)
     return string4;
}

如果在我的主要部分中稍后满足任何条件,则需要一些帮助来返回字符串 当我调用rateResult = calcCatClass(年龄,性别);

感谢

3 个答案:

答案 0 :(得分:0)

您需要一个默认的返回值才能编译。现在,您函数中的最后一个语句是:

if (age > 62)
    return string4;

如果你到达函数的这一点,并且age是&lt; = 62,那么你的函数将在没有返回值的情况下到达终点。

您应该添加一个默认返回来进行编译:

if (age > 62)
    return string4;

return "ERROR - no conditions met!";

答案 1 :(得分:0)

String calcRateClass(int cat, String food)方法中,如果所有条件都无效,则不会返回任何内容,因此将其更改为

String result = "";
if(cat > 32 && cat < 64)
     result = string1;
if(cat > 24 && cat < 31)
     result = string3;
      .
      .

return result;

答案 2 :(得分:0)

这是因为您可以到达方法的末尾并且找不到任何return语句,但是您指定将返回一个String。

在这种情况下,您可以添加返回null的最终return语句。