我写了一个for循环,在墙上唱99瓶啤酒。我使用if语句将特定值返回到 var word 。当瓶子的数量是99到2然后 var word =“瓶子”,当瓶子的数量是1时, var word =“bottle”。这很好但是在最后一次迭代的最后一行,当瓶子的数量是0并且我希望 var word 等于“瓶子”时,它仍然是“瓶子”。
var word="bottles";
for (var count = 99; count > 0; count-- ) {
document.write(count + " " + word + " of beer on the wall, <br>");
document.write(count + " " + word + " of beer.<br>" );
document.write("Take one down, pass it around,<br>");
var count2 = count - 1;
if (count2 === 1) {
word = "bottle";
}
document.write(count2 + " " + word + " of beer on the wall.<br><br>");
}
我的if语句的条件是否不正确?这是浏览器中最后三次迭代的结果:
墙上挂了3瓶啤酒, 3瓶啤酒。 拿一个,传递它, 墙上挂着2瓶啤酒。墙上有2瓶啤酒, 2瓶啤酒。 拿一个,传递它, 墙上挂了1瓶啤酒。
墙上挂了一瓶啤酒, 1瓶啤酒。 拿一个,传递它, 墙上有0瓶啤酒。
答案 0 :(得分:2)
您错过else
部分重置为bottles
,请尝试使用此脚本
var word="bottles";
for (var count = 99; count > 0; count-- ) {
document.write(count + " " + word + " of beer on the wall, <br>");
document.write(count + " " + word + " of beer.<br>" );
document.write("Take one down, pass it around,<br>");
var count2 = count - 1;
if (count2 === 1) {
word = "bottle";
} else
{ word = "bottles";
}
document.write(count2 + " " + word + " of beer on the wall.<br><br>");
}
答案 1 :(得分:0)
如果count
为1
,则您将该字词更改为"bottle"
。
您没有可以更改它的代码。
第1行的代码不再运行:它在循环之外。
因此,您最后一次绕过循环时,未输入if
语句,但该值已更改为"bottle"
。
您需要在循环内将其设置为"bottles"
。