3 回答
TA贡献1854条经验 获得超8个赞
在您提供的代码中:在您的 GUI 中,您将结果分配给“daysHired”变量
int daysHired = Integer.parseInt(daysField.getText());
但是在您的 CarHire 课程中,变量 days 已经预定义为 0:
int days = 0;
所以无论你乘以“天”(乘以 0) - 你总是会得到 0:
rental=days*BASE_RATE;
TA贡献1775条经验 获得超8个赞
public double calculateHireRental(){
final double BASE_RATE = 34.5;
final double NEXT_TIER_RATE = 30.5;
final double LAST_TIER_RATE = 22.5;
final int NEXT_TIER_START_DAY=4;
final int LAST_TIER_START_DAY=7;
double rental= 0.0;
/*Delete the "int days = 0;" variable and use the class member "daysHired" instead*/
if(daysHired<NEXT_TIER_START_DAY){
rental=daysHired*BASE_RATE;
}
else if(daysHired<=LAST_TIER_START_DAY){
rental=3*BASE_RATE+(daysHired-3)*NEXT_TIER_RATE;
}
else{
rental=3*BASE_RATE+4*NEXT_TIER_RATE+(daysHired-7)*LAST_TIER_RATE;
}
return rental;
}
尝试这个...
TA贡献1876条经验 获得超7个赞
在calculateHireRental()
你有int days = 0;
,所以第一个if
是真的,你返回days * BASE_RATE
哪个是0
。
删除days
变量并改用类成员daysHired
。
添加回答
举报