让var基于if语句返回特定值

时间:2017-11-04 08:35:23

标签: javascript for-loop if-statement

我写了一个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瓶啤酒。

2 个答案:

答案 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)

如果count1,则您将该字词更改为"bottle"

您没有可以更改它的代码。

第1行的代码不再运行:它在循环之外。

因此,您最后一次绕过循环时,未输入if语句,但该值已更改为"bottle"

您需要在循环内将其设置为"bottles"