로또 번호를 입력 후 몇 개가 맞았는지 알려주는 프로그램을 만들겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import java.util.*; public class TestRandom { public static void main(String[] args) { Scanner in = new Scanner(System.in); int com[] = new int[6]; int select[] = new int[6]; //컴퓨터수 6개를 setting for(int i=0; i<com.length; ++i) { com[i] = (int)(Math.random()*45) + 1; for(int j=0; j<i; ++j) { if (com[i] == com[j]) { i--; break; } } } //사용자수 6개를 입력받자 for(int i=0; i<select.length; ++i) { do { System.out.print(i+1+"번째 수를 입력 : "); select[i] = in.nextInt(); }while(select[i]<1 || select[i]>45); for(int j=0; j<i; ++j) { if (select[i] == select[j]) { i--; break; } } } int co = 0;//같은수가 몇개인지 알려주는 변수 for(int i=0; i<6; ++i) { for(int j=0; j<6; ++j) { if (com[i] == select[j]) { co++; break; } } } System.out.println(co+"개를 맞추셨습니다."); } } | cs |
키보드로 번호를 입력받기 위해 Scanner를 사용합니다.
int com[] = new int[6];
int select[] = new int[6];
컴퓨터가 작성하는 로또 번호를 com 배열에, 사용자가 입력하는 로또 번호를 select에 저장합니다.
for(int i=0; i<com.length; ++i) {
com[i] = (int)(Math.random()*45) + 1;
Math.random()을 사용하여 컴퓨터가 1~45중 랜덤으로 번호 6개를 선택하게 합니다.
for(int i=0; i<com.length; ++i) {
com[i] = (int)(Math.random()*45) + 1;
for(int j=0; j<i; ++j) {
if (com[i] == com[j]) {
i--;
break;
}
}
}
랜덤으로 나온 6개의 번호 중 중복값이 발생하지 않도록 합니다.
이제 컴퓨터의 로또 번호는 세팅되었습니다.
for(int i=0; i<select.length; ++i) {
do {
System.out.print(i+1+"번째 수를 입력 : ");
select[i] = in.nextInt();
}while(select[i]<1 || select[i]>45);
for(int j=0; j<i; ++j) {
if (select[i] == select[j]) {
i--;
break;
}
}
}
사용자의 로또 번호는 Scanner로 입력받고 do {}while을 사용하여 음수와 46이상의 숫자는 입력받지 않도록 합니다.
do {}while은 while과는 다르게 한 번은 실행되고 나서 조건을 확인합니다.
그리고 컴퓨터와 마찬가지로 중복 값이 발생하지 않도록 합니다.
int co = 0; 로 같은 수가 몇 개인지 알려주는 변수를 생성합니다.
for(int i=0; i<6; ++i) {
for(int j=0; j<6; ++j) {
if (com[i] == select[j]) {
co++;
break;
}
}
}
com[i]와 select[j]에 중복 값이 있는지 확인합니다.
중복 값이 발생할 경우 co의 숫자가 증가합니다.
System.out.println(co+"개를 맞추셨습니다.");
중복 값의 개수를 출력합니다.
잘 출력되었습니다.
저는 로또 하면 안 될 듯...
이전 게시글까지는 전체 코드를 Color Scripter로 올리고 설명할 때는 긁어서 복붙을 하다가
이번에 티스토리 코드블럭을 사용했는데 이쪽이 더 가독성이 좋을까요?
다음에는 설명할 때도 Color Scripter를 써볼까 싶네요.
아직 배우는 중이라 설명에 오류가 있을 수 있습니다!
혹시 오류를 발견하시거나 더 좋은 방법이 있다면 지적 부탁 드립니다~^^
'Study > Java' 카테고리의 다른 글
자바 재귀함수를 이용하여 팩토리얼 구하기 (0) | 2022.03.21 |
---|---|
자바 배열 및 random, System.in.read 를 이용하여 야구 게임 만들기 (0) | 2022.03.18 |
자바 이름과 점수를 입력 받아 순위 출력 (0) | 2022.03.16 |
자바 임의의 숫자 10개를 입력받아 입력한 숫자/합계/평균 출력 (0) | 2022.03.16 |
자바 이름과 전화번호를 입력받아 출력하기 (0) | 2022.03.16 |