자바 배열을 이용하여 아래와 같이 간단한 로또 프로그램을 제작할 수 있습니다. 문제 ) 로또 번호 자동 생성기 프로그램을 작성하세요 단, 중복 값이 있으면 안됨 (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문으로 만들면 되겠다라는 생각이 들었다. 투케이2KJava 31. (java/자바) lotto 로또 프로그램 (랜덤 번호 생성 및 당첨 확인) - Random(임의)정수값 생성, while(true)로또 번호 저장, for문 당첨 확인투케이2K 2020. 12. 30. 08:04 /* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Eclipse 개발 언어 : Java /* =========================== */ /* =========================== */ [소스 코드]
/* =========================== */ [결과 출력] [lotto 로또 프로그램 (랜덤 번호 생성 및 당첨 확인) - Random(임의)정수값 생성, while(true)로또 번호 저장, for문 당첨 확인 실시] 로또 당첨 번호 : [3, 5, 24, 32, 10, 9] 사용자 로또 번호 : [6, 3, 34, 10, 30, 45] 맞힌 개수 : 2 등수 : 꽝 ... 입니다 /* =========================== */ /* =========================== */ [요약 설명] * 1. 로또 번호는 총 6개 번호를 지정한다 * 2. 6개 일치 : 1등 / 5개 일치 : 2등 / 4개 일치 : 3등 / 그외 : 꽝 으로 정한다 * 3. Random 객체를 사용해서 난수 랜덤 정수값을 생성한다 (1 ~ 45 정수 까지 범위 지정) * 4. while(true) 사용해서 중복없는 랜덤 정수값 배열에 저장합니다 * 5. for 문을 사용해서 두배열 일치 값 개수를 확인하고 등수를 출력합니다 * 6. 참고 사항 - 일반적으로 이중 for문을 사용해 간편히 랜덤 로또 번호를 저장할 수 있으나, while 문을 사용해서 작성해 보았습니다 /* =========================== */ |