用Java计算运费

时间:2017-11-20 20:08:53

标签: java if-statement calculator

我正在尝试为我的问题找到解决方案的解决方案。

任务9:计算包裹邮资:

Calculator.java

点击“计算”按钮,目前正在计算错误的邮资。找到有人点击按钮时调用的地方。更正计算,以便计算以下邮资:

•最高包装30x30x15,最高1公斤:3,89欧元

•最高包装60x30x15,最高2公斤:4,39欧元

•打包最多120x60x60和最多皮带尺寸(= L + 2xB + 2xH)<= 300cm且最大5kg:5,99 EUR

•打包最多120x60x60和最多皮带尺寸(= L + 2xB + 2xH)<= 300cm且最大10kg:7,99 EUR

•最高包装120x60x60和最高31,5公斤:14,99欧元

已经给出的代码,我必须更改一些部分,以便它返回正确的运费。它甚至有效,但我的问题是最后一部分。

“•包装最高120x60x60,最高31.5kg:14,99欧元”

我不知道怎么做。我尝试了“其他{运费= 00.00}”,但这听起来很愚蠢。它有效,这不是问题,但我必须正确行事。现在,else语句适用于50公斤,但不应该。

我不确定,再做什么了。请有人在这帮助我。

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;
}

}

顺便说一句。一位软件工程师告诉我使用Else If。首先只有If的

如果我做错了什么,我道歉。这是我第一次使用stackoverflow。

1 个答案:

答案 0 :(得分:0)

删除当前的else并使用另一个ELIF。

最后的其他内容应该用于错误输入或“太大”