这是代码:
double calculateWeeklyPay(double hoursWorked)
{
double pay;
if(hoursWorked > 40)
{
double overtime = hoursWorked - 40;
pay = (40 * hourlyPayRate) + (overtime * hourlyPayRate);
return pay;
}else pay = hoursWorked * hourlyPayRate;
return pay;
}
我试图用这个:
System.out.println("Weekly pay: $" + aaron.calculateWeeklyPay(46));
但它只返回0美元,我不知道为什么?谢谢你的帮助。
答案 0 :(得分:0)
我假设hourlyPayRate
为0.您将两次乘以hourlyPayRate
并添加它们,因此如果变量为0,结果将始终为0(任何时候0 = 0)。
我只能在不阅读更多代码的情况下猜测,但我假设您在构造函数中将此值设置为0,因此您可能希望在构造函数中添加另一个参数。
示例:
我相信你有:
public Employee()
{
this.hourlyPayRate = 0;
}
你应该拥有什么:
public Employee(double hourlyPayRate) //Also any arguments you already had.
{
//Your current code
this.hourlyPayRate = hourlyPayRate;
}
答案 1 :(得分:0)
我看不出为什么会得到" 0"背部。也许你的hourlyPayRate为零?它是全球变量吗?
本守则运作良好:
class workPay {
double calculateWeeklyPay(double hoursWorked, double hourlyPayRate)
{
double pay;
if(hoursWorked > 40)
{
double overtime = hoursWorked - 40;
pay = (40 * hourlyPayRate) + (overtime * hourlyPayRate);
return pay;
} else pay = hoursWorked * hourlyPayRate;
return pay;
}
public void main(String[] args) {
System.out.println(calculateWeeklyPay(46, 80));
}
}