首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个Jave代码的小缺陷

这个Jave代码的小缺陷
EN

Stack Overflow用户
提问于 2014-09-03 18:25:58
回答 1查看 63关注 0票数 0

这是在墙上打印一整首99瓶啤酒的代码。我从一本书上得到的。我才刚开始。代码没有问题,运行良好。只有一个小小的打嗝。当它降到1瓶时,它第一次说“瓶子”。if语句似乎没有在这一行或其他方面生效。我的问题是:是什么使它在前1行变成复数的?

代码语言:javascript
复制
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.");
            }
        }

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-03 18:33:27

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

直到下一个循环开始,word才会被设置。

更明确的帮助(例如,扰流器;在考虑过之前不要翻过来):

将计数检查往下移动到循环中。例如,在第一串语句之后,但在诗句的最后一行之前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25651191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档