使用此Java代码进行轻微缺陷

时间:2014-09-03 18:25:59

标签: java if-statement

这是在墙上打印出99瓶啤酒的完整歌曲的代码。我是从一本书中得到的。我刚开始。代码没问题,运行正常。只有一个轻微的打嗝。当它下降到1瓶时,它第一次说“瓶子”。 if语句似乎没有在该行或类似的东西上生效。我的问题是:是什么导致它在前1行中成为复数?

public class bottle {
    public static void main(String[] args) {
        int beerNum = 99;
        String word = "bottles";

        while (beerNum > 0) {

            if (beerNum == 1) {
                word = "bottle";
            }

            System.out.println(beerNum + " " + word + " of beer on the wall");
            System.out.println(beerNum + " " + word + " of beer");
            System.out.println("Take one down.");
            System.out.println("Pass it around.");
            beerNum = beerNum - 1;

            if (beerNum > 0) {
                System.out.println(beerNum + " " + word + " of beer on the wall.");
            } else {
                System.out.println("No more bottles of beer on the wall.");
            }
        }

    }

}

1 个答案:

答案 0 :(得分:0)

在循环中间从beerNum中减去一个。

word next 循环开始之前未设置。

更明确的帮助(例如,剧透;在您考虑之前不要翻身):

  

将计数检查进一步向下移动到循环中。  

 例如,在第一批陈述之后,但在该节的最后一行之前。