반응형
728x170
자바로 간단한 로또 프로그램을 만든다.
난수로 6개의 배열에 값을 저장하고 중복을 체크도 한다.
(이 부분은 값을 적게해서 비교를 빠르게 해보는 예제이다. 실제로 해보려면 로또 숫자만큼 6을 변경해주면 된다 45인가..?)
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 | public void start() { int[] lotto = new int[6]; boolean check = false; int cnt = 0; Random rand = new Random(); while(cnt < 6) { int num = 1 + rand.nextInt(6); //1부터 45까지의 랜덤한 값 check = false; for(int i = 0 ; i < cnt ; i++) { if(lotto[i] == num) { check = true; break; } } if(!check) { lotto[cnt] = num; cnt++; } } for(int i = 0 ; i < lotto.length ; i++) { System.out.print(lotto[i]+"\t"); } } Colored by Color Scripter |
위는 로또 번호를 생성하는 방법이다. 6개의 배열을 만들어서 반복문을 돈다. 카운트가 6이 될때 까지 도는데 1번씩 돌때마다 난수를 생성한다.
난수가 생성되서 값을 넣기 전에 중복을 체크하고 넣는다.
이렇게 하는 방법도 있고 컬렉션 프레임워크 HashSet을 이용해서도 된다.
Set은 중복되는 값이 없기 때문에 이런식의 프로그램을 구현할 때 매우 유용하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public void start6() //Set을 이용해서 { HashSet<Integer> lotto = new HashSet<>(); while(lotto.size() < 6) { lotto.add((int)(Math.random()*6) + 1); } Iterator<Integer> it = lotto.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } Colored by Color Scripter |
이런식으로 하면 로또 번호가 생성된다.
나머진 사용자가 입력하고 비교만 하면 된다(Scanner로 입력 받고 사용자 로또 6개 입력 받고 같은 값이 있으면 카운트가 증가되는 방식으로)
반응형
그리드형
'java' 카테고리의 다른 글
자바 컬렉션 프레임워크(Collection Framework)소개 및 List 컬렉션(Array List, Vector, LinkedList) (0) | 2017.08.18 |
---|---|
자바 배열로 날짜(D-day) 계산해보기(2017년 기준) (0) | 2017.08.18 |
자바 mysql 연동(JDBC 이용), preparedstatment (0) | 2017.08.18 |
자바 mysql 접속 및 출력(연동) (0) | 2017.08.18 |
자바 mysql 연동 진행(jdbc 설치, mysql connector 설치) 및 확인 (0) | 2017.08.18 |