Skip to content

seyeon22/java-lotto-7

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-lotto-precourse 기능 목록

로또 발매기 구현

로또 구입 금액과 당첨 번호, 보너스 번호를 입력 받고, 발생한 로또 수량 및 번호, 당첨 내역, 수익률을 출력하는 간단한 로또 발매기를 구현해본다.

1. 구입 금액 입력

  • 로또 구입 금액을 1000원 단위로 입력 받는다.
  • 999원 이하나, 나누어 떨어지지 않는 경우, 예외 처리를 한다.
    • 이렇게 잘못된 형식으로 입력시 에러 메시지를 출력하고, 입력을 다시 받도록 한다.

2. 6개의 번호 뽑아서 출력

  • Ramdoms.pickUniqueNumbersInRange(1, 45, 6);을 사용하여, 1~45번의 6개 번호를 뽑는다.
  • 오름차순으로 정렬하여 보여준다.

3. 당첨 번호 입력 받기

  • 당첨 번호를 쉼표(,) 기준으로 6개 입력 받는다.
  • 쉼표 기준으로 숫자를 골라낸다.
  • 입력받는 숫자는 1~45 사이여야 하며, 다른 숫자가 들어올 시 에러 메시지 출력 후 입력을 다시 받도록 한다.
  • 동일한 숫자를 2번 이상 입력하는 경우에도 에러 메시지 출력 후 입력을 다시 받도록 한다.

4. 보너스 번호 입력 받기

  • 1~45 사이인 숫자 1개인 보너스 번호를 입력 받는다.
  • 1~45 사이에 있는 숫자여야하며, 3. 당첨 번호 입력 받기에서 받았던 번호와 동일하다면 에러 메시지 출력 후 입력을 다시 받도록 한다.

5. 뽑은 로또 번호와, 입력 받은 당첨 번호 비교

  • 구입한 개수만큼 뽑은 로또 번호와 입력 받은 당첨 번호를 비교하여 몇 개가 일치하는지 계산한다.

6. 당첨 내역 출력

  • 5번에서 계산한 결과를 받아서, 당첨 내역을 형식에 맞게 출력한다.

7. 수익률 계산

  • (당첨된 금액/구입 금액)으로 수익률을 출력하며, Enum을 사용한다.
  • 소수점 둘째 자리에서 반올림하여 출력한다.

8. Controller 작성

  • 앞서 작성된 1~7번의 내용을 순서대로 실행하는 컨트롤러를 작성한다.
  • 전체 프로그램의 실행흐름을 담당하는 부분이다.

9. main 함수 작성

  • 이 프로그램의 시작점이며, Controller로 연결된다.

10. 단위 테스트 실행

  • 각종 예외 상황을 다 통과할 수 있는 테스트 코드 작성을 통해 요구사항을 충족했는지 확인한다.
  • 단위 별로 작게 나누어 테스트 한다.

11. 리팩토링

  • 클린 코드가 될 수 있도록 디자인 패턴을 참고하여 작성된 코드를 개선한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%