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
。
添加回答
舉報