티스토리 뷰
[주제]
- 로또 번호 추첨 프로그램 만들기
[중요]
- 반복문을 사용하여 중복여부를 판단하는 과정
[소스 코딩]
package lottoClass; import java.util.Scanner; class lottoClass { public static void main(String[] args) { /* 1. 로또 1개는 숫자 1~45개 중에 숫자 6개를 무작위로 결정 2. 숫자는 중복불가 3. 사용자가 입력한 숫자는 무작위 결정 시 제외됨 ※ 15개 입력 4. 제외되지 않은 숫자 중에서 로또 만들기 ※ 30개를 갖고 로또 5개 만들기 */ Scanner scan = new Scanner(System.in); int numCount = 30; int lottoArr[] = new int[numCount]; int exArr[] = new int[15]; /* // @테스트용 - 제외할 숫자가 들어있는 배열 int exArr[] = new int[] {11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; */ System.out.println("★★ 로또 추첨기 ★★"); System.out.println("로또 추첨에서 제외할 숫자를 입력하세요"); // 추첨된 숫자에서 제외할 숫자 입력 + 제외 배열에 저장 for (int i=0; i < 15; i++) { System.out.print("남은 제외 횟수 = " + (15 - i) + " 입력: "); exArr[i] = scan.nextInt(); } // 제외된 숫자 배열 확인용 출력 System.out.println(); System.out.println("[제외된 숫자는 아래와 같습니다]"); for (int i=0; i < exArr.length; i++) { System.out.print(exArr[i] + " "); } System.out.println(); System.out.println(); // 로또 추첨 for (int i=0; i < numCount; i++) { lottoArr[i] = (int)(Math.random() * 45 + 1); // 제외된 숫자 배열과 중복여부 비교 for (int j=0; j < exArr.length; j++) { if (lottoArr[i] == exArr[j]){ i--; break; } } // 기존에 추첨된 로또 배열과 중복여부 비교 for(int k=0; k < i; k++) { if(lottoArr[i] == lottoArr[k]) { i--; break; } } } // 결과 출력(로또 5개) System.out.println("[로또 리스트]"); for(int i=0; i < 30; i++) { if(i == 0){ System.out.print("1번 로또 = "); } if(i == 6) { System.out.println(); System.out.print("2번 로또 = "); } if(i == 12) { System.out.println(); System.out.print("3번 로또 = "); } if(i == 18) { System.out.println(); System.out.print("4번 로또 = "); } if(i == 24) { System.out.println(); System.out.print("5번 로또 = "); } System.out.print(lottoArr[i] + " "); } System.out.println(); scan.close(); } } | cs |
■ 실행결과
■ 소스 코드 핵심(교육센터 예시)
※ 지정 숫자 제외(noNumber), boolean을 사용하여 스위치 개념으로 관리
int noNumber[] = { 1, 5, 34, 23, 45, 4, 24, 35, 22, 31, 11, 6, 9, 19, 41 }; boolean swit[] = new boolean[45]; int lottoNum[] = new int[30]; for(int i = 0;i < 45 ; i++) { swit[i] = false; // [0] ~ [44] = false } for(int i = 0;i < 15 ; i++) { swit[noNumber[i]-1] = true; } int r, w; w = 0; while(w < 30) { r = (int)(Math.random() * 45); // 0 ~ 44 if(swit[r] == false) { swit[r] = true; lottoNum[w] = r + 1; // 1 ~ 45 w++; } } | cs |
'프로그래밍 언어 > Java(연습)' 카테고리의 다른 글
야구 게임 (0) | 2016.04.27 |
---|---|
sorting(정렬) (0) | 2016.04.27 |
cast(형변환) (0) | 2016.04.26 |
string2(진수 변환) (0) | 2016.04.25 |
string(문자열) (0) | 2016.04.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- 영어
- System
- ADODB
- 자료구조
- 작문
- 여행영어 100일의 기적
- 대상
- 설명
- 문법
- 알고리즘
- VCL
- Reference
- 정렬
- tdataset
- 상황
- 스택
- 말하기
- 독해
- Delphi
- 왕초보 영어회화 100일의 기적
- 일기
- Pte
- SysUtils
- 교육센터
- RA
- wfd
- 계산기
- 응용
- SWT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함