Repository files navigation
로또 구입 금액을 입력하면 구입 금액에 해당하는 로또를 발급해야 한다.
로또 1장의 가격은 1000원이다.
2등을 위해 추가 번호를 하나 더 추첨한다.
당첨 통계에 2등도 추가해야 한다.
사용자가 수동으로 추첨 번호를 입력할 수 있도록 해야 한다.
입력한 금액, 수 생성 숫자, 수동 생성 번호를 입력하도록 해야 한다.
로또 자동 생성은 Collections.shuffle() 메소드 활용한다.
Collections.sort() 메소드를 활용해 정렬 가능하다.
ArrayList의 contains() 메소드를 활용하면 어떤 값이 존재하는지 유무를 판단할 수 있다.
모든 기능을 TDD로 구현해 단위 테스트가 존재해야 한다. 단, UI(System.out, System.in) 로직은 제외
핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분한다.
UI 로직을 InputView, ResultView와 같은 클래스를 추가해 분리한다.
indent(인덴트, 들여쓰기) depth를 2를 넘지 않도록 구현한다. 1까지만 허용한다.
예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.
함수(또는 메소드)의 길이가 15라인을 넘어가지 않도록 구현한다.
함수(또는 메소드)가 한 가지 일만 잘 하도록 구현한다.
모든 로직에 단위 테스트를 구현한다. 단, UI(System.out, System.in) 로직은 제외
핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분한다.
UI 로직을 InputView, ResultView와 같은 클래스를 추가해 분리한다.
자바 코드 컨벤션을 지키면서 프로그래밍한다.
else 예약어를 쓰지 않는다.
힌트: if 조건절에서 값을 return하는 방식으로 구현하면 else를 사용하지 않아도 된다.
else를 쓰지 말라고 하니 switch/case로 구현하는 경우가 있는데 switch/case도 허용하지 않는다.
java enum을 적용해 프로그래밍을 구현한다.
규칙 8: 일급 콜렉션을 쓴다.
규칙 3: 모든 원시값과 문자열을 포장한다.
규칙 5: 줄여쓰지 않는다(축약 금지).
예외 처리를 통해 에러가 발생하지 않도록 한다.
LottoNumber
LottoNumbers
LottoMachine
Money
WinningLotto
About
로또 게임 구현을 관리하는 저장소
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.