while (wight>0);
分号有效地形成了这个循环:当 wight 大于 0 时,什么也不做。这会强制执行无限循环,这就是您的其余代码不执行的原因。
此外,“重量”与“重量”不同。这是另一个错误。
此外,如果您将该行更改为while (weight > 0)
,您仍然会有一个无限循环,因为随后执行的代码不会改变“权重” - 因此,它将始终大于 0(除非在提示,在这种情况下它根本不会执行)。
你想要的是:
var weight;
weight=parseInt(prompt("Please, enter weight")); // Missing parenthesis
// Those two lines can be combined:
//var weight = parseInt(prompt("Please, enter weight"));
while(weight>0)
{
if (weight>199 && weight<300)// REMOVE semicolon - has same effect - 'do nothing'
{
document.write("Tax will be" + weight*5);
// above string probably needs to have a space at the end:
// "Tax will be " - to avoid be5 (word smashed together with number)
// Same applies below
}
else
{
document.write("Tax will be" + weight*10);
}
}
这在语法上是正确的。您仍然需要更改 while 条件,或更改该循环中的“权重”,以避免无限循环。