作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试打印 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;
}
}
最佳答案
您的方法并不是真正解决问题的递归方法。通常会执行递归而不是循环。你有一个奇怪的递归和迭代的混搭。
如果您的要求是通过递归解决问题,那么请弄清楚如何在没有任何循环构造的情况下完成它(不,我不会为您做作业)。实际上您已经具备了大部分所需的东西。
关于java - 99瓶啤酒的无限递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354126/
我是一名优秀的程序员,十分优秀!