/* 배열 응용 */
/* 로또 번호 생성기 */
/* 직접 시도한 경우 */
/* 뻘짓이 심함 */
package lambda;
public class Lambda {
public static void main(String[] args) {
new Main();
}
}
/* 메인 코드 영역 */
class Main {
private int[] lotto;
Main() {
this.lotto = new int[6];
this.main();
}
/* 핵심 코드 영역 */
private void main() {
System.out.println(this.getTitle());
// 엔터 입력
try {
System.in.read();
} catch (Exception e) {
}
System.out.println(this.getLotto());
}
// 타이틀 반환
private String getTitle() {
StringBuilder sb = new StringBuilder();
sb.append("***로또번호 생성기***\n");
sb.append("시작하려면 Enter");
return sb.toString();
}
// 로또 번호 반환
private String getLotto() {
StringBuilder sb = new StringBuilder();
int[] counts = new int[6];
while (true) {
for (int i = 0; i < 6; i++) { // 로또 숫자 초기값
this.lotto[i] = (int) (Math.random() * 45) + 1; // 1 ~ 45 의 랜덤 숫자
}
for (int i = 0; i < 6; i++) { // 숫자 6개를...
int count = 0;
for (int j = 0; j < 6; j++) { // 6번 비교
if (this.lotto[i] == this.lotto[j]) {
if (count == 2) // 자기 자신과도 비교하기 때문에 2번째부터 확정 중복
break;
count++;
}
}
if (count == 1) { // 자기 자신과만 중복
counts[i] = count; // 숫자별 중복체크 결과값 저장
}
}
if (counts[5] == 1) // 마지막 숫자의 중복체크 결과값이 1이면 while 문 종료
break;
}
for (int i = 0; i < 6; i++) { // 결과값 마지막 숫자 제외 공백 추가해서 출력
sb.append((i != this.lotto.length - 1) ? this.lotto[i] + " " : this.lotto[i]);
}
return sb.toString();
}
}
댓글
댓글 쓰기