我是javascript的新手,我在理解为什么这段代码无法执行时遇到了一些麻烦:
var weight;
wight=parseInt(prompt("Please, enter weight");
while(weight>0);
{
if (weight>199 && weight<300);
{
document.write("Tax will be" + weight*5);
}
else
{
document.write("Tax will be" + weight*10);
}
}
编辑:对不起,我在这里写下代码时拼错了一些'权重'。无论哪种方式,这不是问题。当我在谷歌浏览器中运行它时,它只是没有提示。当它提示时,它不会执行'if'语句。
答案 0 :(得分:3)
while (wight>0);
分号有效地形成了循环:当wight大于0时,什么都不做。这会强制进行无限循环,这就是代码的其余部分无法执行的原因。
此外,'wight' 与'weight'相同。这是另一个错误。
此外,如果你将该行更改为while (weight > 0)
,你仍然会有一个无限循环,因为然后执行的代码不会改变'权重' - 因此,总是大于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条件,或者更改该循环中的'weight',以避免无限循环。
答案 1 :(得分:-1)
重量拼写:
while (wight>0);
while (weight>0);
也在
document.write("Tax will be" + wight*10);
document.write("Tax will be" + weight*10);
答案 2 :(得分:-1)
试试这个
var weight;
weight=parseInt(prompt("Please, enter weight"));
while (weight>0)
{
if (weight>199 && weight<300)
{
document.write("Tax will be" + weight*5);
}
else
{
document.write("Tax will be" + weight*10);
}
}