99병의 맥주

눅세 (토론 | 기여)님의 2017년 10월 24일 (화) 14:14 판

미국캐나다의 민요이자 애주가로 영국동요중 하나인 열 개의 녹색 병(Ten Green Bottles)에서 파생되었다.

설명

벽장에 있는 99병의 맥주를 하나씩 꺼내다가 마시면서 결국 벽장을 다 비워버린다는 내용으로, 한 병의 맥주가 남을 때까지는 같은 가사가 계속 반복된다. 마지막 한 병이 남은 시점에는 가사가 바뀌는데 가게에서 더 사오는 경우도 있고(...), 그냥 거기서 마무리를 지어버리는 경우도 있다.[1]

곡의 구조상 프로그래밍 언어를 공부할때 반복문/조건문 연습용으로도 사용된다. 한 병만 남았을 때는 99병을 더 사오는 게 아니라 그냥 다른 가사를 출력하고 마무리 하는 형태로 만들도록 하는 게 일반적이며, 작성간 아래와 같은 특성을 고려해야한다.

  • 매번 대상의 수가 1개씩 감소되지만, 가사는 그대로 유지된다.
  • 마지막 한병이 남았을 경우 출력되는 가사가 달라진다.
  • 마지막 한병이 남은 시점에서 반복문을 중단해야한다.

난이도를 높이려면 처음의 병 수를 입력받거나, 병의 숫자를 아라비아 숫자가 아닌 '단어'로 표시하는 방법을 사용할 수 있다. 이러면 배열을 쓰든 case문을 쓰든 현 시점의 병 숫자를 단어로 변환할 방법을 찾아줘야 해서 코드가 더 늘어난다. 추가적으로 언어에 따라서는 문법적인 면을 더 고려해 줘야 하는 부분도 생기는데, 예를 들어서 한국어의 특성상 단어로 병의 숫자를 표기하면 스물이 수관명사로 쓰일 경우 ㄹ을 탈락시켜야 해서 20병인 시점에는 스물 대신 스무가 나오게 해줘야 한다고 한다.[2]

자기가 종교적인 이유 등으로 인해 술 운운하는 게 싫다면 술이 아닌 다른 걸 출력할 수 있도록 코드를 수정해서 만들어보는 것도 괜찮다.99병의 누카콜라

각주