多个嵌套if语句未进行计算
multiple nested if statements not calculating
我正试图让这个工资单计算器运行相互嵌套的多个if语句。
它需要满足的条件如下:
例如,如果每月总工资是2000NI代码的最后一个字母是
要计算国民保险津贴,你需要将总工资除以4。2000/乘以4=500。这意味着NI频带是a2。
然后总和为"毛*a2"(如代码顶部列出的变量所示)
然后将结果显示为"您的NI扣除:??"
如果输入了不同的字母,我很难运行if语句。。例如"B"
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script>
function computeNet() {
<!--NI Codes - use https://www.gov.uk/national-insurance-rates-letters/contribution-rates for updates on NI rates--!>
//NI Code A//
var a1 = 0;
var a2 = 0.12;
var a3 = 0.12;
var a4 = 0.02;
//NI Code B//
var b1 = 0;
var b2 = 0.0585;
var b3 = 0.0585;
var b4 = 0.02;
//NI Code C//
var c = 0;
var d1 = 1.4;
var d2 = 0.106;
var d3 = 0.12;
var d4 = 0.02;
//NI Code E//
var e1 = 0;
var e2 = 0.0585;
var e3 = 0.0585;
var e4 = 0.02;
//NI Code J//
var j1 = 0;
var j2 = 0.02;
var j3 = 0.02;
var j4 = 0.02;
//NI Code L//
var l1 = 1.4;
var l2 = 0.02;
var l3 = 0.02;
var l4 = 0.02;
var gross = document.getElementById('gross').value;
var tax_code = document.getElementById('tcode').value;
var ni_code = document.getElementById('ni').value;
var allowance = ((gross - ((tax_code * 10)/12)));
var ni_allowance = (gross / 4);
if (ni_code = "A") {
if (ni_allowance > 111 && ni_allowance < 153) {
ni_minus = (gross * a1);
}
else if (ni_allowance > 153.01 && ni_allowance < 770) {
ni_minus = (gross * a2);
}
else if (ni_allowance > 770.01 && ni_allowance < 805) {
ni_minus = (gross * a3);
}
else {
ni_minus = (gross * a4);
}
if (ni_code = "B") {
if (ni_allowance > 111 && ni_allowance < 153) {
ni_minus = (gross * b1);
}
else if (ni_allowance > 153.01 && ni_allowance < 770) {
ni_minus = (gross * b2);
}
else if (ni_allowance > 770.01 && ni_allowance < 805) {
ni_minus = (gross * b3);
}
else {
ni_minus = (gross * b4);
}
}
document.getElementById('ni_deduction').innerHTML = "Your NI deduction:"+ni_minus;
}
}
</script>
</head>
<body>
<p>Your Monthly Gross Pay: £<input id="gross" type="number" onChange="computeNet()"></p>
<p>The numerical part of your tax code: <input id="tcode" type="number" onChange="computeNet()"></p>
<p>last letter of your NI code: <input id="ni" type="text" onChange="computeNet()"></p>
<h2 id="gross_pay"></h2>
<h2 id="paye-deduction"></h2>
<h2 id="ni_deduction"></h2>
<h2 id="net_pay"></h2>
</body>
</html>
此处编码:http://jsfiddle.net/n384noLk/
我期待您的帮助
If"B"需要移出If"A"。
因为它是嵌套的,所以如果ni_code不等于"A",则完全跳过If"B"语句。
if (ni_code == "A") {
if (ni_allowance > 111 && ni_allowance < 153) {
ni_minus = (gross * a1);
} else if (ni_allowance > 153.01 && ni_allowance < 770) {
ni_minus = (gross * a2);
} else if (ni_allowance > 770.01 && ni_allowance < 805) {
ni_minus = (gross * a3);
} else {
ni_minus = (gross * a4);
}
} elseif (ni_code == "B") {
if (ni_allowance > 111 && ni_allowance < 153) {
ni_minus = (gross * b1);
} else if (ni_allowance > 153.01 && ni_allowance < 770) {
ni_minus = (gross * b2);
} else if (ni_allowance > 770.01 && ni_allowance < 805) {
ni_minus = (gross * b3);
} else {
ni_minus = (gross * b4);
}
}
http://jsfiddle.net/n384noLk/2/
Equality由==在JavaScript中测试,因此应该是:
if(ni_code == "A")
和
if(ni_code == "B")
此外,你没有关闭你的第一个if语句,所以它看到了
if(ni_code == "B")
作为嵌套if.的延续。您需要另一个}after:
else {
ni_minus = (gross * a4);
}
相关文章:
- JavaScript if() 语句未按预期计算
- 使用 Javascript switch 语句,如何计算数组中元素的数量(仅数字)
- 使用 If 语句的 Javascript 计算
- 由 OR 运算符分隔的语句的计算顺序
- 奇怪的 if 语句计算行为
- Javascript:如何在第 2 和第 3 语句中使用三元运算符计算 for 循环
- 在嵌套在 for 循环 (JavaScript/jQuery) 中的 switch 语句中计算 jQuery 数组的元素
- 使用条件语句和 while 循环 JavaScript 计算 2 个日期之间的闰年
- 为什么 javascript void 语句计算表达式
- JavaScript中的“while”语句如何计算递减变量
- jQuery - 如何计算 if/else 语句的两个选择选项值
- 多个嵌套if语句未进行计算
- javascript新手,可以't计算出document.getElementById与if语句中的值是否匹配
- 如何使用if语句创建用于求和值和计算结果的窗体
- JavaScript if/else语句计算行长度时出错
- 计算字段的Jquery if语句需要帮助
- 为什么获胜't我的JavaScript计算涉及if语句是否有效
- 用于计算bmr的if-else语句
- 使用if计算基于年龄的点数.Else语句中,脚本只显示第一个值
- 尝试从DOB导出年龄,然后计算点,使用if.其他语句