자동 생성기(자바 중복 체크) 자바롯트 번호

 문제) 로또 번호 자동 생성기 프로그램을 만들어 주세요.단, 중복 값이 있어야 함 (Hint: Random Class 사용)


문제에 중복값이 있어서는 안된다고 했다.. 흠.. 그건 어쩌나.. 랜덤함수를 사용하려고 했지만 범위가 0에서부터 시작되어 사용할 수 없었다. 랜덤함수를 이용해서 어떻게 할까?



*랜덤함수를 사용하려면 import java.util.Random;

Random 변수 = new Random(); / 랜덤 클래스 객체 생성


int num=변수.nextInt(10); / 0~9까지 랜덤 수 생성.

* 덧붙여서 랜덤 클래스 메소드 중에 nextInt(): 정수형 랜덤 nextDouble(): 실수형 랜덤 nextBoolean(): 진·위 랜덤

중복 체크하기(완성본)
중복 체크한다. (완성 출력 화면)






<랜덤 입력값 중복 체크 부분>

for ( int i = 0 ; i < arr . length ; i++ ) { arr [ i ] = ( int ) ( Math . random ( ) * 45 ) + 1 ; for ( int j = 0 ; j < i ; j++ ) { if ( arr [ i ] == arr [ j ] ) { i -- ; }}}


소스코드 중위 부분은 중복체크 부분이다.너무 몰라서 구글링해서 소스 코드를 찾았어.처음으로 이중for문을 보고 이중배열도 아닌데? 하지만 규칙을 생각해보니 맞는 것 같아.규칙이

만약 입력하는 숫자가 합계 4개라고 가정하면, i=0, i=1, i=2, i=3이다.i = 0 - > 비교할 필요 없음 i = 1 - > i = 1 VS i = 0 비교 해야함 i = 2 - > i = 2 VS i = 0 , i = 2 VS i = 1 비교필요 i = 3 - > i = 3 VS i = 0 , i = 3 VS i = 1 , i = 3 VS i = 2 비교 필요

빨간 부분이 1씩 늘어나는 동안에 -> for 문 1개 노란 부분이 비교되기 때문에 -> for 문 1개 두개를 비교하는 것을 이중 for 문으로 하면 좋을 것 같았다.

이 블로그의 인기 게시물

대학교 신입생, 햅쌀 봄 아이템, 남자 스타일 추천!

오랑우탄 재활센터와 산베어 보호센터(BSBCC) + 레인포레스트 디스커버리센터 [Erykah in Malaysia : 20190101] 세피록

(비지니스클래스