- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这个很长的方法:
public decimal decDiscount(QuoteData quoteData)
{
if (TotalChapter7(quoteData) >= 7499)
return 5300;
else if (TotalChapter7(quoteData) >= 7449)
return 5300;
else if (TotalChapter7(quoteData) >= 7399)
return 5250;
else if (TotalChapter7(quoteData) >= 7349)
return 5200;
else if (TotalChapter7(quoteData) >= 7299)
return 5200;
else if (TotalChapter7(quoteData) >= 7249)
return 5150;
else if (TotalChapter7(quoteData) >= 7199)
return 5100;
else if (TotalChapter7(quoteData) >= 7149)
return 5100;
else if (TotalChapter7(quoteData) >= 7099)
return 5050;
//...
else if (TotalChapter7(quoteData) >= 1199)
return 1100;
else if (TotalChapter7(quoteData) >= 1149)
return 1100;
else if (TotalChapter7(quoteData) >= 1099)
return 1050;
else if (TotalChapter7(quoteData) >= 1049)
return 1000;
else
return 0;
}
它有一个重复出现的模式,可以用下面的 Excel 表格来说明:
……>>>>
从最高的“费用”(7499) 开始,每份报表的费用下降 50。但是,每 100 的返回(或“折扣价”)保持不变(两次 50 的费用下降),然后一次返回(一次 50 的费用下降)本身下降 50,然后重复。
如您所见,我的方法很长(我遗漏了 7049 到 1249 之间的部分)。我可以做些什么来缩短这个时间吗?
谢谢。
最佳答案
你们真的把这个复杂化了。任何尝试使用整数运算来解决这个问题的方法都是一个坏主意。看看对于一群非常聪明的人(我们都很聪明,不是吗?)来说,即使一开始就把它做对也是多么困难。它真的很难发现,很难理解,很难正确,而且很难维护。
您需要一种易于理解且易于维护的方法。查看您的原始帖子,您对规则有英文说明。
However, the return (or "Discounted Price") stays the same for each 100 (two 50 drops in Fee), then drops 50 itself for one return (one 50 drop in Fee), and then repeats.
代码实际上是自己写的:
public int GetFeeFromQuoteData(QuoteData quoteData) {
int fee = 5300;
int difference = 7449 - TotalChapter7(quoteData);
bool isTwoStep = true;
while (difference > 0) {
if (isTwoStep) {
difference -= 50;
}
else {
difference -= 100;
}
fee -= 50;
isTwoStep = !isTwoStep;
}
return fee;
}
关于c# - 有没有办法缩短这么长的 if/else if return 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10802613/
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How do short URLs services work? 我经常看到来自 bitly.com 的缩短
if (args.join(" ").toLowerCase() === "are you" || args.join(" ").toLowerCase() === "are you doing")
学习Golang,想知道是否有更短的编写方法 if tiletype == 0 || tiletype == 2 { levelmap[pass
sum_num = 0 for human in humans: sum_num += human.limbs return sum_num 假设对象 human 具有属性 limbs ,如下
我想问一下是否有一种方法可以像在 MSSQL 中那样缩短这个条件,因为我也有类似的条件。 if(docType == "PO" || docType == "II" || docType == "IA
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我在单页上有一些 15-20 个 Highcharts (使用 slider ,每张幻灯片 1-2 个图表)、一些条形图、一些柱形图、一些饼图,具有不同的显示选项。我使用的是在我的闭包内有多种方法,其
几周前,我在下拉菜单的一些代码上得到了一些帮助,但我想知道是否可以使代码更短,因为下面显示的当前代码相当大,任何帮助都会很棒。 $(document).ready(function(){ $(
这里是新的。我只是想知道是否有可能使这个 if 语句更短且冗余更少。 if (!a && b) { if (c == d && e > 0) { return;
我有这个代码。 c = getch() if c == "r":
我有几行代码用于迭代列表中的字典,我想缩短它。它按原样完美运行,但似乎代码太多,我正在尝试了解如何在 Python 中(或一般情况下)保持代码高效。 for d in dev['devices']:
如果代码如下,如何缩短 if 语句? $a = null; $b = "foo"; if ((empty($a) && !empty($b)) || (!empty($a) && empty($b))
我需要计算应用的每日独立用户数。 我可以唯一识别用户的唯一方法是通过他们的 UUID(这是外部提供的,所以我不得不使用它)。 我知道我的每日用户数是几百万。 我想在 Redis 中使用一个 bitse
载体 a和 b可以使用 toString(width = 10) 缩短在 Base R 中导致以 .... 结尾的较短向量 但是,我想知道如何使缩短的向量以 ..., last vector elem
是否有缩短 HTML 页面的库(最好是 Python 库)?我的意思是它会生成一个可能更小的(就字符数而言,包括换行符 Silly example 可以改成: Silly example
如何缩短这段 CSS 的代码?当它在移动 View 中时,它将隐藏表格的某些列。我的表有 137 列,我只想查看 5 列。 @media only screen and (max-width: 800
我所拥有的是主目录中的文件路径,我希望将其处理为包含“~”的缩短路径。 例如,我的输入可能是:"/home/username/test"或 /home/./username/test或 /home/.
我们为文档生成一个 GUID,并且需要将该 GUID 包含在 C40 编码的条码(Type 29 2D)中,并且具有以下限制。 最长可达 25 个字符只能使用大写字母数字字符,不能使用特殊字符。 我曾
这个问题已经有答案了: Ternary operators in JavaScript without an "else" (13 个回答) 已关闭 4 年前。 我一直使用这样的三元表达式,但我不喜欢
首先,我想确保我知道这样一个事实:重新哈希是一个明智的话题。不过,我想听听您的一些意见,以及您会采取什么方法。 我正在构建一个分布式应用程序,其中节点远程创建由 UUID 标识的实体。最终,所有实体应
我是一名优秀的程序员,十分优秀!