2017-11-20 1 views
0

과제에 대한 내 문제의 해결책을 찾으려고합니다.Java에서 배송비 계산

작업 9 : 패키지 우표의 계산은 :

Calculator.java 

은 "계산"버튼을 클릭하여, 잘못된 우표는 현재 계산되고있다. 누군가가 버튼을 클릭 할 때 호출되는 장소를 찾습니다. 3,89 EUR

• 패키지 최대 2kg에 60x30x15과 최대 : 1kg까지 30x30x15

• 포장을하고 다음 우표가 계산되도록 계산을 수정 4,39 EUR

• 패키지 최대 120x60x60 및 최대. 벨트 측정 값 (= L + 2xB + 2xH) < = 300cm에서 5kg까지 : 5,99 EUR

• 최대 포장은 120x60x60까지입니다. 벨트 측정 (= L + 2xB + 2xH) < = 300cm와 10kg까지 : 7,99 EUR

• 패키지 최대 120x60x60에까지이 31,5kg합니다 : 14,99 EUR

코드는 이미 주어진 , 일부 부품을 변경해야 정확한 배송비가 반환됩니다. 그것은 작동하지만 내 문제는 마지막 부분입니다.

"• 120x60x60 및 최대 패키지 31,5kg합니다 : 14,99 EUR"나는 그것을 할 방법을 모르는

합니다. "else {shipping costs = 00.00}"로 시도했지만 바보처럼 들립니다. 그것은 문제가 아니지만 올바르게 작동해야합니다. 지금 당장 else 문은 50kg으로 작동하지만 그렇게해서는 안됩니다.

나는 무엇을 해야할지 잘 모르겠다. 여기 누군가가 제발 나를 도울 수 있습니까?

public class Calculator { 

public double calcShippingCosts(Packet pack) { 
    double shippingCosts; 

    if ((pack.length <= 300) && (pack.width <= 300) && (pack.height <= 150) && (pack.weight <= 1000)) { 

     shippingCosts = 3.89; 

    } else if ((pack.length <= 600) && (pack.width <= 300) && (pack.height <= 150) && (pack.weight <= 2000)) { 

     shippingCosts = 4.39; 

    } else if ((pack.length <= 1200) && (pack.width <= 600) && (pack.height <= 600) && ((pack.length + (2 * pack.width) + (2 * pack.height)) <= 3000) && (pack.weight <= 5000)) { 

     shippingCosts = 5.99; 

    } else if ((pack.length <= 1200) && (pack.width <= 600) && (pack.height <= 600) && ((pack.length + (2 * pack.width) + (2 * pack.height)) <= 3000) && pack.weight >= 5000 && pack.weight <= 10000) { 

     shippingCosts = 7.99; 

    } else { 

     shippingCosts = 14.99; 
    } 
    return shippingCosts; 
} 

} 

btw. 소프트웨어 엔지니어가 Else If를 여기에 사용하라고했습니다. 처음에는 If가있었습니다.

내가 잘못했다면 사과드립니다. 이것은 stackoverflow를 처음 사용하는 것입니다.

+2

메서드 반환 잘못된 매개 변수가 무엇을 공급해야 할 때 잘못된 항목이 사용 또는 "너무 큰"해야 하는가? 아니면 전혀 돌아 오지 않고 대신 Exception을 throw해야합니까 (오류로 끝나야합니까?)? –

답변

0

현재 EL을 제거하고 다른 ELIF를 사용하십시오.

다른 최종