2009-11-22 4 views
1

주차장에 최소 3 시간 동안 주차장에 최소 $ 2의 요금이 부과된다고 가정하면 매 시간마다 주차장에 시간당 $ 0.5가 추가로 부과됩니다. 예를 들어 5 시간 동안 주차하는 경우 $ 2 + $ 0.5 + $ 0.5 = $ 3Javascript - 루프에 대한 결과 사용을 어떻게 계산해야합니까?

루프 요금을 어떻게 계산해야합니까?

+0

정말로 당신의 질문이 무엇인지 잘 모르겠습니다. 조금 더 자세히 설명해 주시겠습니까? – roosteronacid

답변

5

거기에 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); 
0

이렇게 될 수 있습니다. 죄송합니다. 잘못 되었다면 테스트하지 않으 셨습니다.

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; 
+0

do {...}에 넣고 while (0); 그를 행복하게하기 위해서. –

+0

예, 루프를 넣는 방법을 생각하십시오. – YOU

+0

마음에 들지 않아 좋습니다 –

관련 문제