Programing/JAVA

Head First :: 페이지 48쪽 :: BeerSong :: 맥주 99병

Dongkkase 2009. 1. 6. 13:34
반응형
Head First(chapter 1 :: p.48 BeerSong)

자바 책중 'head first java'라는 책이 있는 페이지 48쪽의 BeerSong이라는 문제가 있다
아래의 코드가 그 문제이다

public class BeerSong{
	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");
			}
		}
	}
}


위의 코드대로 코딩하면 컴파일도 잘되고 실행도 잘되지만 한가지 흠이 있다고 한다. 어떤 문제가 있는지, 그리고 그 문제를 어떻게해야 고칠수 있는지에 대해서 물어본다.

그런데.. 이 문제를 풀려면 '맥주 99병'이라는 가사를 알아야 풀 수 있다 -_-)
그.래.서
찾아본 '맥주 99병' 가사 노래 제목은'Lyrics of the song 99 Bottles of Beer'이고 http://www.99-bottles-of-beer.net/lyrics.html 의 사이트로 들아가면 가사를 볼수 있다.

아래의 코드는 가사를 보며 수정한 코드다.
클래스명은 임의로  TureBeerSong이라 하고 컴파일 해봤다.

public class TureBeerSong{
	public static void main(String[] args){
		int beerNum = 10;
		String word = "bottle' s";		//복수형

		while(beerNum > 0){
			if(beerNum==1){
				word = "bottle";		//단수형
			}
			System.out.print(beerNum+" "+word+" of beer on the wall, ");
			System.out.println(beerNum+" "+word+" of beer.");
			System.out.print("Take one down and ");
			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.print("No more bottles of beer on the wall, no more bottles of beer.");
				System.out.println("Go to the store and buy some more, 99 bottles of beer on the wall.");
			}
		}
	}
}


잘 나온다-_-
head first java 책은 정말이지 좋은 책이다. 내용도 좋다. 하지만, 책 번역을 좀 유도리 있게 번역해 주었으면 이렇게까지 짜증이 나지 않았을텐데 좀 아쉽다.
반응형