이렇게 적은 내용을 바탕으로 다시 행성 로또 문제를 해결해 보자.
Lotto클래스 안에서 너무 많은 일을 담당하고 있다.Lotto클래스의 statics 배열의 구조 개선 및 메서드를 더 효율적인 로직으로 구성해보기.- 입력 부분의 검증 함수 부족 및 그에 따른 테스트 부재
- 일관성 있고 가독성 좋은 변수명 짓기
- 매직넘버 제거 및 하드코딩 된 부분 상수화 진행
- 운세보기 기능의 완성 및 테스트 코드 작성
- 수익 보기 기능의 테스트 코드 작성
- 로또 번호를 입력 받는다.
- 당첨 번호를 입력받는다. 번호는 쉼표(,)를 기준으로 구분한다.
- 보너스 번호를 입력받는다.
- 발행한 로또 수량 및 번호를 출력한다. 로또 번호는 오름차순으로 정렬하여 보여준다.
출력 결과 예시
2개를 구매했습니다.
[8, 11, 13, 21, 22]
[1, 3, 6, 14, 22]
- 당첨 내역을 출력한다.
출력 결과 예시
당첨 통계
---
5개 일치 (100,000,000원) - 0개
4개 일치, 보너스 번호 일치 (10,000,000원) - 0개
4개 일치 (1,500,000원) - 0개
3개 일치, 보너스 번호 일치 (500,000원) - 0개
2개 일치, 보너스 번호 일치 (5,000원) - 1개
0개 일치 (0원) - 1개
예외 상황 시
[ERROR]로 시작하는 에러 문구를 출력한다.
- 숫자가 아닌 값을 입력시 예외처리
- 500원 이하의 금액을 입력하면 예외처리
- 보너스 및 당첨 번호는 1 ~ 30 범위의 숫자만 입력 가능, 그 이외의 범위의 숫자 입력시 예외처리
- 당첨 번호의 개수가 5개가 아니면 예외처리
- 당첨 번호가 중복되면 예외처리
- 당첨 번호와 보너스 번호가 중복되면 예외처리
로또 결과를 확인하기 전 오늘의 운세를 확인할 수 있는 기능을 만들었습니다.
- 운세를 확인할 지
[Y/N]으로 입력을 받는다. - 운세를 확인하지 않는다면 기존 행성 로또가 실행된다.
- 오늘의 로또 운세 메세지를 출력한다.
출력 결과 예시
(운세를 확인할 때)
오늘은 운이 좋을듯한 하루입니다. 과감하게 도전하세요!
(운세를 확인하지 않을 때)
로또 발매를 진행하겠습니다.
- Y(y) or N(n)을 입력하지 않는 경우 예외처리
- 총 로또 당첨금을 출력합니다.
- 지난 주 로또 당첨 번호 기준으로 지표로 삼을 수 있는 수익률을 게산합니다.
- 수익률은 소수점 첫째 자리까지 출력합니다.
출력 결과 예시
총 당첨금은 5,000원 입니다.
총 수익률은 10.0%입니다.