【问题标题】:Calculation of Shipping Costs in Java用 Java 计算运费
【发布时间】:2017-11-20 20:08:52
【问题描述】:

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

任务 9:包裹邮资的计算:

Calculator.java

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

• 包装不超过30x30x15 和不超过 1 公斤:3,89 欧元

• 包装不超过60x30x15 和不超过 2 公斤:4,39 欧元

• 包装高达120x60x60 和最大值。腰带尺寸(= L + 2xB + 2xH)

• 包装高达120x60x60 和最大值。腰带尺寸(= L + 2xB + 2xH)

• 包装不超过120x60x60 和不超过 31.5 公斤:14.99 欧元

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

"• 最大 120x60x60 和最大 31.5 公斤的包装:14.99 欧元"

我不知道该怎么做。我尝试使用“else {shipping costs = 00.00 }”,但这听起来很愚蠢。它有效,这不是问题,但我必须做对。现在 else 语句适用于 50 kg,但它不应该。

我不确定,该怎么办。有人可以帮我吗?

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's

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

【问题讨论】:

  • 提供无效参数时,该方法应该返回什么?还是应该根本不返回并抛出异常(以错误结束)?

标签: java if-statement calculator


【解决方案1】:

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

最后的else应该用于不正确的输入或“太大”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 2012-03-18
    • 2012-02-19
    • 2012-01-28
    相关资源
    最近更新 更多