[Java] 로또 번호 생성
2011. 2. 12. 22:27 |
프로그래밍/기타
public class Lotto {
public static void main(String[] args) {
int[] lotto = new int[6];
for (int i = 0; i < lotto.length; i++) {
int ranNum = -1;
boolean isDuplicate;
do {
isDuplicate = false;
ranNum = (int) (Math.random() * 45 + 1);
for (int j = 0; j < i; j++) {
if (ranNum == lotto[j]) {
isDuplicate = true;
break;
}
}
} while (isDuplicate);
lotto[i] = ranNum;
}
for (int n : lotto) {
System.out.print(n + "\t");
}
}
}
public static void main(String[] args) {
int[] lotto = new int[6];
for (int i = 0; i < lotto.length; i++) {
int ranNum = -1;
boolean isDuplicate;
do {
isDuplicate = false;
ranNum = (int) (Math.random() * 45 + 1);
for (int j = 0; j < i; j++) {
if (ranNum == lotto[j]) {
isDuplicate = true;
break;
}
}
} while (isDuplicate);
lotto[i] = ranNum;
}
for (int n : lotto) {
System.out.print(n + "\t");
}
}
}
자바 기초공부 하면서 작성해본 로또 번호 생성 메서드입니다. 이제 갓 배우기 시작한 초보이니 고수님들 코드 보시고 지적할 부분 있다면 지적해주세요.
제가 위 구문에서 배열에 번호를 넣은 이유는 나중에 사용자 입력 번호를 받아서 배열과 비교해 당첨 여부를 확인해주기 위함이었는데, starbros님께서 댓글로 적어주신 코드가 중복 검사에서 더 효율적으로 보이길래 starbros님의 방법을 활용하면서 당첨 번호를 배열에 따로 넣도록 코드를 새로 작성해봤습니다. 중복 여부 검사는 int형 배열이 0으로 초기화 된다는 점을 활용하니 확실히 편하네요.
public class Lotto {
public static void main(String[] args) {
int count = 0;
int[] numbers = new int[45];
int[] lotto = new int[6];
while (count < lotto.length) {
int ranNum = (int) (Math.random() * 45);
if (numbers[ranNum] == 0) {
numbers[ranNum] = 1;
lotto[count] = ranNum + 1;
count++;
}
}
for (int n : lotto) {
System.out.print(n + "\t");
}
}
}
public static void main(String[] args) {
int count = 0;
int[] numbers = new int[45];
int[] lotto = new int[6];
while (count < lotto.length) {
int ranNum = (int) (Math.random() * 45);
if (numbers[ranNum] == 0) {
numbers[ranNum] = 1;
lotto[count] = ranNum + 1;
count++;
}
}
for (int n : lotto) {
System.out.print(n + "\t");
}
}
}
'프로그래밍 > 기타' 카테고리의 다른 글
[Python] CentOS 리눅스 Python 3 설치 (1) | 2017.05.07 |
---|---|
[Python] 자연수 n 이하의 소수 구하기 (1) | 2017.05.07 |
[Python] 로또 번호 생성 (4) | 2017.05.07 |
[java] 복잡도를 만족하는 랜덤 패스워드 생성 (11) | 2011.12.26 |
[java] 랜덤 패스워드 생성 (19) | 2011.05.21 |
VisualSVN 서버로 Subversion 서버 구동하기 (9) | 2011.03.09 |
마우스 우클릭으로 .java 컴파일과 동시에 실행하기 (16) | 2010.12.22 |
마우스 우클릭으로 .java 컴파일과 .class 실행하기 (44) | 2010.12.13 |
최근에 달린 댓글 최근에 달린 댓글