public class BeerSong { public String verse(int number) { switch (number) { case 0: return "No more bottles of beer on the wall, no more bottles of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n\n"; case 1: return "1 bottle of beer on the wall, 1 bottle of beer.\nTake it down and pass it around, no more bottles of beer on the wall.\n\n"; case 2: return "2 bottles of beer on the wall, 2 bottles of beer.\nTake one down and pass it around, 1 bottle of beer on the wall.\n\n"; default: return String.format("%d bottles of beer on the wall, %d bottles of beer.\nTake one down and pass it around, %d bottles of beer on the wall.\n\n", number, number, number - 1); } } public String sing(int start, int stop) { StringBuilder songOutput = new StringBuilder(); for (int i=start; i>=stop; i--) { songOutput.append(verse(i)); } return songOutput.toString(); } public String singSong() { return sing(99,0); } }