Java 99瓶啤酒的无限递归

Java 99瓶啤酒的无限递归,java,recursion,Java,Recursion,我试图打印99瓶啤酒的歌词,但是,我得到一个无限递归,设置在第一节。有没有关于如何摆脱这种无限递归的想法 public static void bottlesOfBeer(int beer) { //prints the lyrics for "99 bottles of Beer on the wall". if (beer == 99) { for (beer = 99; beer > 0; bottlesOfBeer(beer - 1)

我试图打印99瓶啤酒的歌词,但是,我得到一个无限递归,设置在第一节。有没有关于如何摆脱这种无限递归的想法

    public static void bottlesOfBeer(int beer) { //prints the lyrics for "99 bottles of Beer on the wall".
        if (beer == 99) {
            for (beer = 99; beer > 0; bottlesOfBeer(beer - 1)) {
                System.out.println(beer
                    + " bottles of Beer on the wall!"
                    + beer + " bottles of Beer!"
                    + " Take one down, pass it around, "
                    + minusOneBeer(beer) + " bottles of beer on the wall!");
            }
        }
    }

    public static int minusOneBeer(int beer) {
        return beer - 1;
    }
}

查看您的
瓶装啤酒(int beer)
方法-

 public static void bottlesOfBeer(int beer)  
它的返回类型为void。在for循环中使用它作为递增/递减的占位符

公共静态无效瓶装啤酒(int-beer)
此方法返回一些int

希望能有所帮助。

谢谢。

看看你的
瓶装啤酒(int啤酒)
方法-

 public static void bottlesOfBeer(int beer)  
它的返回类型为void。在for循环中使用它作为递增/递减的占位符

公共静态无效瓶装啤酒(int-beer)
此方法返回一些int

希望能有所帮助。

谢谢。

看看你的
瓶装啤酒(int啤酒)
方法-

 public static void bottlesOfBeer(int beer)  
它的返回类型为void。在for循环中使用它作为递增/递减的占位符

公共静态无效瓶装啤酒(int-beer)
此方法返回一些int

希望能有所帮助。

谢谢。

看看你的
瓶装啤酒(int啤酒)
方法-

 public static void bottlesOfBeer(int beer)  
它的返回类型为void。在for循环中使用它作为递增/递减的占位符

公共静态无效瓶装啤酒(int-beer)
此方法返回一些int

希望能有所帮助。

谢谢。

好的,问题是你从来没有减少啤酒的摄入量。正确的方法是将
瓶装啤酒(beer-1)
部分替换为
啤酒--
。这将在循环每次运行时自动减少啤酒量

这也意味着可以删除if(beer==99)检查。如果您总是希望它从99开始,则创建一个名为
BEERS\u start=99的常量,并使用该常量初始化BEERS。如果您希望它能够从任意整数开始,那么只需删除检查

编辑: 如果您的老师要求递归,那么您应该以不同的方式处理递归。我不会提供代码,因为我不能提供一个好的例子,而不为您编写作业。然而,有一种比你现在做的更简单的方法。在这个方法中根本不需要for循环。因此,您也不需要if语句。尝试在不使用for循环和if语句的情况下设计递归。一旦你到达那里,最终的结果就会简单得多


如果您在尝试了一段时间后仍然有问题,请在问题中发布一些更新的代码,包含您的新尝试,并在另一条评论中告诉我。我看看能不能从那里帮上忙

好吧,问题是你从来没有真正减少啤酒的摄入量。正确的方法是将
瓶装啤酒(beer-1)
部分替换为
啤酒--
。这将在循环每次运行时自动减少啤酒量

这也意味着可以删除if(beer==99)检查。如果您总是希望它从99开始,则创建一个名为
BEERS\u start=99的常量,并使用该常量初始化BEERS。如果您希望它能够从任意整数开始,那么只需删除检查

编辑: 如果您的老师要求递归,那么您应该以不同的方式处理递归。我不会提供代码,因为我不能提供一个好的例子,而不为您编写作业。然而,有一种比你现在做的更简单的方法。在这个方法中根本不需要for循环。因此,您也不需要if语句。尝试在不使用for循环和if语句的情况下设计递归。一旦你到达那里,最终的结果就会简单得多


如果您在尝试了一段时间后仍然有问题,请在问题中发布一些更新的代码,包含您的新尝试,并在另一条评论中告诉我。我看看能不能从那里帮上忙

好吧,问题是你从来没有真正减少啤酒的摄入量。正确的方法是将
瓶装啤酒(beer-1)
部分替换为
啤酒--
。这将在循环每次运行时自动减少啤酒量

这也意味着可以删除if(beer==99)检查。如果您总是希望它从99开始,则创建一个名为
BEERS\u start=99的常量,并使用该常量初始化BEERS。如果您希望它能够从任意整数开始,那么只需删除检查

编辑: 如果您的老师要求递归,那么您应该以不同的方式处理递归。我不会提供代码,因为我不能提供一个好的例子,而不为您编写作业。然而,有一种比你现在做的更简单的方法。在这个方法中根本不需要for循环。因此,您也不需要if语句。尝试在不使用for循环和if语句的情况下设计递归。一旦你到达那里,最终的结果就会简单得多


如果您在尝试了一段时间后仍然有问题,请在问题中发布一些更新的代码,包含您的新尝试,并在另一条评论中告诉我。我看看能不能从那里帮上忙

好吧,问题是你从来没有真正减少啤酒的摄入量。正确的方法是将
瓶装啤酒(beer-1)
部分替换为
啤酒--
。这将在循环每次运行时自动减少啤酒量

这也意味着可以删除if(beer==99)检查。如果您总是希望它从99开始,则创建一个名为
BEERS\u start=99的常量,并使用该常量初始化BEERS。如果您希望它能够从任意整数开始,那么只需删除检查

编辑: 假设你的老师要求递归,那么你