Javascript 没有正确执行

Javascript does not execute correctly

晚上好, 我正在使用 Blockly 来学习编程。 练习部分代码没有正确执行。如果 "maandloon" 大于 2000,则 'Kindergeld' 减少 25%。但是,如果减价后的结果低于每child25欧元,则没有减价。 问题是当 maandloon >2000 时,计算继续使用 25%,即使减少后的结果低于每 child.

25 欧元

这是我的代码:

var aantalKinderen, maandloon, kindergeld, kindergeldBasis, toeslag3ekind, toeslag5ekind, i;
do {
aantalKinderen=parseInt((parseFloat((output = window.prompt('Hoeveel kinderen?')) ? output : "")));
var blocktype_number = true;
if (output == null) {
    window.alert("No empty input allowed");
    break;
    }
} while(isNaN(aantalKinderen));
do {
maandloon=(parseFloat((output = window.prompt('Wat is het maandloon?')) ? output : ""));
var blocktype_number = true;
if (output == null) {
    window.alert("No empty input allowed");
    break;
    }
} while(isNaN(maandloon));
kindergeldBasis = 25;
toeslag3ekind = 12.5;
toeslag5ekind = 7.5;
kindergeld = kindergeldBasis * aantalKinderen;
if (aantalKinderen > 2) {
  kindergeld = kindergeldBasis * aantalKinderen + (aantalKinderen - 2) * toeslag3ekind;
}
if (aantalKinderen > 4) {
  kindergeld = kindergeldBasis * aantalKinderen + (aantalKinderen - 2) * toeslag3ekind + (aantalKinderen - 4) * toeslag5ekind;
}
if (maandloon <= 500) {
  kindergeld = kindergeld * 1.25;
}
if (maandloon > 2000) {
  kindergeld = kindergeld * 0.75;
} else {
  if ((kindergeld * 0.75) / aantalKinderen < 25) {
      kindergeld = kindergeld;
  }
}
window.alert(String('Het kindergeld bedraagt ') + String(kindergeld)+'\n');

有人可以帮助我吗?

谢谢。

听起来您想要将额外的 if 检查移动到 > 2000 语句中。不然不会火。您的 if else 语句是线性的。它不会在 > 2000 之后击中你的 else 除非条件没有与之前的任何 if 语句匹配并且值小于 2000。它不会 运行 无论或当值被先前的 if 条件更改时。

var aantalKinderen, maandloon, kindergeld, kindergeldBasis, toeslag3ekind, toeslag5ekind, i;
do {
aantalKinderen=parseInt((parseFloat((output = window.prompt('Hoeveel kinderen?')) ? output : "")));
var blocktype_number = true;
if (output == null) {
    window.alert("No empty input allowed");
    break;
    }
} while(isNaN(aantalKinderen));
do {
maandloon=(parseFloat((output = window.prompt('Wat is het maandloon?')) ? output : ""));
var blocktype_number = true;
if (output == null) {
    window.alert("No empty input allowed");
    break;
    }
} while(isNaN(maandloon));
kindergeldBasis = 25;
toeslag3ekind = 12.5;
toeslag5ekind = 7.5;
kindergeld = kindergeldBasis * aantalKinderen;
if (aantalKinderen > 2) {
  kindergeld = kindergeldBasis * aantalKinderen + (aantalKinderen - 2) * toeslag3ekind;
}
if (aantalKinderen > 4) {
  kindergeld = kindergeldBasis * aantalKinderen + (aantalKinderen - 2) * toeslag3ekind + (aantalKinderen - 4) * toeslag5ekind;
}
if (maandloon <= 500) {
  kindergeld = kindergeld * 1.25;
}
if (maandloon > 2000) {
  kindergeld = kindergeld * 0.75;
   if (kindergeld / aantalKinderen < 25) {
      kindergeld = 25;
  }
} 
window.alert(String('Het kindergeld bedraagt ') + String(kindergeld)+'\n');