Я пытаюсь напечатать лирику до 99 бутылок пива, но я получаю бесконечную рекурсию, установленную в первом стихе. Любые идеи о том, как я могу избавиться от этой бесконечной рекурсии?Бесконечная рекурсия для 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;
}
}
Вы пытались использовать итерацию или рекурсию? Похоже, вы в основном были смущены и пытались использовать оба. – Radiodef
Я пытался рекурсии – pati3ntzero
Просто, чтобы дать вам подсказку: ваш метод будет следовать форме, как 'static void bottles (int b) {if (b> 0) бутылки (b - 1); } ', который будет отсчитываться до 0. – Radiodef