자동 생성기(자바 중복 체크) 자바롯트 번호
문제) 로또 번호 자동 생성기 프로그램을 만들어 주세요.단, 중복 값이 있어야 함 (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 문으로 하면 좋을 것 같았다.

