我是一个Javascript新手,我正在创建一个计算器,为直接护理提供者提取医生费用。我通过在这个帖子中引用BBog的答案来帮助创建一个脚本:
take user input from a Form perform calculation (order of operations) and output back into that form
我成功地收集了各种输入值的总和,并将它们乘以每个输入的不同金额,以达到总价。我甚至设法调整它,以便每个孩子收取的价格如果不是成年人就会改变。
我无法弄清楚的是如何根据添加的儿童数量来更改每个孩子的费用。前两个应该是每个25美元,而额外的孩子应该是10美元,例如1美元25美元,2美元50美元,3美元60美元,4美元70美元等。我尝试过的所有内容都会产生语法错误,我很难弄清楚如何用短语来表达问题通过谷歌回答。
到目前为止,这是我的代码:
function calculate() {
var adult1 = document.DPCcalculator.adult20to44.value * 55;
var adult2 = document.DPCcalculator.adult45to64.value * 75;
var adult3 = document.DPCcalculator.adult65.value * 95;
var childvalue = document.DPCcalculator.child.value;
var child2 = document.DPCcalculator.child19to22.value * 30;
if (childvalue <= 2); {
(child1 = document.DPCcalculator.child.value * 25);
}
// here's what I don't know how to fix
// if (childvalue > 2); {
// (child1 = childvalue > 2 * 10 + 50);
// }
if (adult1 + adult2 + adult3 === 0) {
(child1 = document.DPCcalculator.child.value * 70);
}
result = (adult1 + adult2 + adult3 + child1 + child2);
document.DPCcalculator.output.value = result;
}
除了我上面提到的每个孩子的成本条件之外,一切都有效。我有2个孩子或更少的代码工作,但还没有想出如何向第3个孩子和更多的孩子扔东西。我已经尝试了几种方法,所以目前只有一种方法是在黑暗中拍摄。
答案 0 :(得分:0)
嗯,快速检查似乎表明我用开关解决了这个问题:
switch (true)
{ case childvalue <= 2:
child1 = childvalue * 25;
break;
case childvalue > 2:
child1 = childvalue * 10 + 30;
}
将会发挥双重作用,但现在它看起来像解决方案。
我想这在某种程度上是一种欺骗,但我认为将所有东西乘以10然后再增加30以使前两个孩子加起来为50美元而不是试图将孩子1和2从3岁以上儿童中分离出来更简单。它得到的结果相同,并发症少。