嗨我在我的方法中遇到错误,说我的方法没有返回类型,因为它有返回类型而令人困惑;
public double getPhoneRates() {
final int freeminutes=50;
double totalcharge;
double chargeperminute = 0.10;
double d = 0;
if(b.regularService() == true){
if(b.getMinutes()<=50)
return totalcharge=0;
else
d=b.getMinutes()-freeminutes;
d = d * chargeperminute;
return totalcharge= freeminutes +d;
}
}
答案 0 :(得分:5)
试试这个:
public double getPhoneRates()
{
final int freeminutes = 50;
double chargeperminute = 0.10;
double d = 0;
if (b.regularService() == true)
{
if (b.getMinutes() <= 50) return 0; //return 0
else d = b.getMinutes() - freeminutes;
d = d * chargeperminute;
return freeminutes + d; //return result
}
return -1; //some default value
}
答案 1 :(得分:1)
检查你的牙套。您并不总是在方法中点击return语句。
答案 2 :(得分:1)
以下代码应该适合您:
public double getPhoneRates()
{
final int freeminutes = 50;
double chargeperminute = 0.10;
double d = 0;
if (b.regularService() == true)
{
if (b.getMinutes() <= 50) return 0;
else d = b.getMinutes() - freeminutes;
d *= chargeperminute;
d += freeminutes;
}
return d;
}
在所有情况下,你的方法都应该有回报。
它通常是一个更好的代码,只返回一个方法的一个地方。
答案 3 :(得分:0)
如果你明白地复制了代码,那么一个右大括号}
似乎就会丢失..此外,流程的所有分支似乎都没有返回。