Else不在javascript中的if-Else-if结构中工作



否则,如果结构给出错误的结果。我替换了以前的else if,它起作用了,但这次下面的代码出现了错误。

const gelir_vergisi = {
gelir: function() {
matrah = ((document.getElementById("a_sayisi").value) - sgk.vtoplam());
if (matrah <= (document.getElementById("gelir1").value)) {
gv1 = (matrah * 15) / 100;
return gv1;
} else if ((document.getElementById("gelir1").value) < matrah <= (document.getElementById("gelir2").value)) {
bir = ((document.getElementById("gelir1").value) * 15) / 100;
iki = ((matrah - (document.getElementById("gelir1").value)) * 20) / 100;
gv2 = bir + iki;
return gv2;
} else if ((document.getElementById("gelir2").value) < matrah <= (document.getElementById("gelir3").value)) {
ilk_dilim = ((document.getElementById("gelir1").value) * 15) / 100;
ikinci_dilim = (((document.getElementById("gelir2").value) - (document.getElementById("gelir1").value)) * 20) / 100;
ucuncu_dilim = ((matrah - (document.getElementById("gelir2").value)) * 27) / 100;
gv = ilk_dilim + ikinci_dilim;
gv3 = gv + ucuncu_dilim;
return gv3;
}
}
}

您可以使用一元加号强制转换为数字,假设字段都包含数字,否则使用isNaN测试

然后你可以让整个可读性更强

我可能输入了一些括号错误,但这里是一个尝试

注:返回后无需其他

const gelir_vergisi = {
gelir: function() {
let a_sayisi = +document.getElementById("a_sayisi").value;
let gelir1 = +document.getElementById("gelir1").value;
let gelir2 = +document.getElementById("gelir2").value;
let gelir3 = +document.getElementById("gelir3").value;
const matrah = a_sayisi - sgk.vtoplam();
if (matrah <= gelir1) return (matrah * 15) / 100;
if (gelir1 < matrah && matrah <= gelir2) {
let bir = (gelir1 * 15) / 100;
let iki = ((matrah - gelir1) * 20) / 100;
return bir + iki;
}
if (gelir2 < matrah && matrah <= gelir3) {
let ilk_dilim = (gelir1 * 15) / 100;
let ikinci_dilim = ((gelir2 - gelir1) * 20) / 100;
let ucuncu_dilim = ((matrah - gelir2) * 27) / 100;
let gv = ilk_dilim + ikinci_dilim;
return gv + ucuncu_dilim;
}
return 0; // or something else that makes sense
}
}

最新更新