주차장에 최소 3 시간 동안 주차장에 최소 $ 2의 요금이 부과된다고 가정하면 매 시간마다 주차장에 시간당 $ 0.5가 추가로 부과됩니다. 예를 들어 5 시간 동안 주차하는 경우 $ 2 + $ 0.5 + $ 0.5 = $ 3Javascript - 루프에 대한 결과 사용을 어떻게 계산해야합니까?
루프 요금을 어떻게 계산해야합니까?
주차장에 최소 3 시간 동안 주차장에 최소 $ 2의 요금이 부과된다고 가정하면 매 시간마다 주차장에 시간당 $ 0.5가 추가로 부과됩니다. 예를 들어 5 시간 동안 주차하는 경우 $ 2 + $ 0.5 + $ 0.5 = $ 3Javascript - 루프에 대한 결과 사용을 어떻게 계산해야합니까?
루프 요금을 어떻게 계산해야합니까?
거기에 for
루프를 사용할 필요 없습니다 :
function calculateFee(hours) {
if (isNaN(hours) || hours <= 0) return 0;
var result = 2;
if (hours <= 3) return result;
var additionalHours = Math.round(hours - 3);
for (i = 0; i < additionalHours; i++) {
result += 0.5;
}
return result;
}
그리고 마지막으로 예를 사용하여 개체 :
function calculateFee(hours) {
if (isNaN(hours) || hours <= 0) return 0;
if (hours <= 3) return 2;
var additionalHours = Math.round(hours - 3);
return 2 + 0.5 * additionalHours;
}
var fee = calculateFee(5);
는 그리고 for
루프를 사용하여 요구 사항 인 경우
function FeeCalculator(minimalFee, initialHours, additionalHourFee) {
if (isNaN(minimalFee) || minimalFee <= 0) { throw "minimalFee is invalid"; }
if (isNaN(initialHours) || initialHours <= 0) { throw "initialHours is invalid"; }
if (isNaN(additionalHourFee) || additionalHourFee <= 0) { throw "additionalHourFee is invalid"; }
this.minimalFee = minimalFee;
this.initialHours = initialHours;
this.additionalHourFee = additionalHourFee;
}
FeeCalculator.prototype = {
calculateFee: function(hours) {
if (hours <= this.initialHours) return this.minimalFee;
var additionalHours = Math.round(hours - this.initialHours);
return this.minimalFee + this.additionalHourFee * additionalHours;
}
};
var calculator = new FeeCalculator(2, 3, 0.5);
var fee = calculator.calculateFee(5);
이렇게 될 수 있습니다. 죄송합니다. 잘못 되었다면 테스트하지 않으 셨습니다.
fee=0
if (hour>0){
fee=2;
hour-=3;
//without for loop
//if(hour>0)fee+=0.5*hour;
//with for loop
for(var i=0;i<hour;i++){
fee+=0.5;
}
}
return fee;
정말로 당신의 질문이 무엇인지 잘 모르겠습니다. 조금 더 자세히 설명해 주시겠습니까? – roosteronacid