【发布时间】: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