2014-01-27 102 views
-4
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(年龄,性别等);错误:缺少return语句 - 在java中

谢谢

+0

你实际上在最后一条if语句后错过了一个返回 –

+2

可能*食物预算*太小:) – MariuszS

+2

请问您可以格式化您的代码,并在必要时加上括号来澄清? – dbermudez

回答

0

这是因为你可以到达方法的末尾并且没有找到任何返回语句,但是您指定将返回一个字符串。

在这种情况下,您可以添加一个返回null的final语句。

0

您需要一个默认返回值来编译。现在,在你的函数最后的说法是:

if (age > 62) 
    return string4; 

如果你到这一点的功能,和年龄是< = 62,你的功能将到达终点,而无需一个价值回归。

您应该添加一个默认的回报,使这个编译:

if (age > 62) 
    return string4; 

return "ERROR - no conditions met!"; 
+0

完美。谢谢!效果很好。 *竖起大拇指* – zr0

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;