티스토리 뷰
오늘은 Java의 Random 함수를 이용한 lotto 번호 생성기를 만들어 보도록 하겠습니다.
기본적인 세팅은 되어있는 것으로 간주하고 코딩 해보도록 하겠습니다.
//랜덤함수 시작 - 무엇인가를 시작하기 전에 주석 달아주는 습관을 기르시면 추후 긴~ 코드 작성시 찾기 편해집니다.
int[] random = new int[6];
//int형 배열 random을 생성해주고 생성된 번호 6개가 들어갈 공간을 만들어줍니다.
for(int i = 0; i < random.length; i++){
//for문을 이용해서 숫자 6개가 생성되도록 해줍니다.
random[i] = (int)(Math.random() * 45 + 1);
//만들어둔 random방에 java에서 지원하는 Math.random() 함수를 이용해 숫자를 생성해줍니다.
//* 45는 45개의 숫자(0~44)를 이용하라는 것이고 +1 해주는 것은 1~45숫자를 받아오기 위함입니다.
//random()함수 값은 double형 이기때문에 (int)형으로 변환해줍니다.
for(int j = 0; j < i; j++){
//중복 검사를 하는 for을 작성합니다.
if(random[i] == random[j]){
//if문을 통해 이미 생성된 값이 이번에 생성하는 값과 같으면 밑에 코딩을 수행합니다.
i--;
//방번호를 줄여줍니다. 이유는 다른 번호를 새로 생성하기 위해서 입니다.
break;
//if문을 빠져나갑니다.
}
//기존 생성된 숫자와 이번에 생성한 숫자의 if문을 마칩니다.
}
//중복 검사를 하는 for문을 마칩니다.
}
//6개의 숫자를 생성하는 for문을 마칩니다.
자 이제 콘솔 화면에 찍어보도록 하겠습니다.
찍으면서 저는 또 하나의 작업을 해보도록 하겠습니다. 추후 콘솔을 제외한 다른 화면에 뿌려주기 위해서 map에 담아보도록 하겠습니다.(저는 웹에 뿌려주기 위해 작업했습니다.)
Map<String, Integer> randomMap = new LinkedHashMap<String, Integer>();
//randomMap 이름의 map을 생성하는데 LinkedHashMap으로 만들겠습니다.
//이유는 map은 들어가는 순서가 지맘대로라 원하는 순서대로 출력하기 위해서 사용했습니다.
for(int i = 0; i < random.length; i++){
//6개의 값을 찍어주기 위해 random 값의 개수만큼 for문을 돌려줍니다.
System.out.println((i+1) + "번째 : " + random[i]);
//생성된 숫서대로 콘솔 화면에 찍어줍니다.
randomMap.put((i+1) + "번째", random[i]);
//randomMap에 넣어주기 위해 put함수를 사용합니다. key 값과 value값을 각각 넣어줍니다.
}
//6개의 값을 찍어주고 map에 담았으면 for문을 마칩니다.
System.out,println("일반 랜덤 함수 끝 -> 이제부터 Map 출력");
//map에 잘 담겼나 확인하기 위해 영역을 나눠줍니다. 이제 map에 담긴 값들을 출력해 보겠습니다.
Set<String> keySet = randomMap.keySet();
//randomMap에 담긴 값들의 모든 key를 받아올 Set 객체 keySet을 선언하고 담아옵니다.
Iterator<String> iterator = keySet.iterator();
//담아온 keySet을 iterator()를 이용해서 Interface iterator에 넣어줍니다.
//어떤 행위를 하는지는 알겠는데 어렵네요.
while(iterator.hasNext()){
//while문을 통해 iterator에 다음값이 있으면 아래 소스를 실행합니다.
String key = iterator.next();
//iterator에 들어있는 키값들을 String형 key에 넣어줍니다.
Integer value = randomMap.get(key);
//key값에 맞는 map에 담긴 값들을 찾아와 Integer형 value에 넣어줍니다.
System.out.println(key + " : " + value);
//key 값과 그에 맞는 value 값을 출력합니다.
}
//다 찍었으면 while문을 마칩니다.
//랜덤함수 끝
콘솔화면과 코딩 스크린샷 입니다.
재미로 시작한 lotto 번호 생성기인데 다양한 메소드를 사용하게 되었네요.
추후에는 받아온 map값을 웹상에 뿌려주는 페이지도 만들어 보도록 하겠습니다.
개발공부는 멀고도 험합니다....^^; 화이팅!
'실베스텔's 공부' 카테고리의 다른 글
윈도우 8.1 오라클(oracle) 11g 쉽게 삭제하는 법 (0) | 2017.06.13 |
---|---|
전자정부표준프레임워크(eGovFrame) 경량환경 포털사이트 세팅 하는 법 (0) | 2017.06.12 |
JSP JSTL 종류와 사용법. 그리고 EL (0) | 2017.06.11 |
jquery ajax 사용법 (0) | 2017.06.10 |
데이터베이스 오라클 Oracle 11g 설치하는 법 (0) | 2017.06.08 |
- Total
- Today
- Yesterday
- 러시아월드컵
- c:choose
- 17/18 프리미어리그
- JSTL
- Oracle 11G
- 프리미어리그
- 오라클
- <c:if>
- 첼시
- 프리미어리그 승격팀
- c:forEach
- 오라클 삭제
- 이적시장
- <c:choose>
- c:if
- 번호 생성기
- deinstall
- 유로파
- random
- oracle 삭제
- 오라클 설치
- egovframe
- 17/18 EPL
- jQuery ajax
- 17/18 챔피언십
- javascript
- 프리미어리그 강등팀
- 전자정부프레임워크
- 아시아최종예선
- 17/18 프리미어리그 일정
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |