[Java] 220329 로또 프로그램을 만들어보자.

SeongEon Kim·2022년 3월 29일
0

JAVA

목록 보기
2/52

Java를 통해 로또 프로그램을 구현해보도록 하자.

사용되는 메소드는 array, random, for 메소드 이다.

1부터 45까지의 숫자 중 6개를 임의로 뽑는 소스이다.
소스코드는 아래와 같다.


package koreait.day8;

import java.util.Arrays;
import java.util.Random;

public class RealLotto {
//확률을 반영하여 LottoTest.java를 새로운 알고리즘으로 구현합니다.

public static void main(String[] args) {
	int[] numbers = new int[45];
	Random r = new Random();
	
	for(int i=0;i<45;i++) {   //인덱스 범위 : 0 ~44
		numbers[i]=i+1;       //값 범위 : 1~ 45
	}
	System.out.println("numbers 배열 초기값 -----------------------");
	System.out.println(Arrays.toString(numbers));
	System.out.println("--------------- -----------------------");
	
	
	int[] lotto = new int[6];
	int k;   //삭제할 위치의 인덱스 -> 랜던한 값으로 합니다.
	for(int cnt=0;cnt<6;cnt++) {
		
		    //1. 인덱스 범위를 -1씩 줄이면서 난수 발생시킵니다.
			k=r.nextInt(45-cnt); // 경계값을 45(00~44),44(0~43),43(0~42),42(0~41), 41(0~40),40(0~39)
			System.out.println("k = " +k +",number =" + numbers[k]);
			//2. k번째 위치의 데이터를 lotto배열에 저장합니다.
			lotto[cnt]=numbers[k];
			
			//3. 배열에서 데이터 삭제
			for(int i=k;i<numbers.length-1;i++) {
				numbers[i] = numbers[i+1]; // 인덱스 i+1의 배열값을 인덱스 i의 값으로 변경.
				
			}
			System.out.println(Arrays.toString(numbers));
	}
	System.out.print("최종 선택 숫자 : ");
	System.out.println(Arrays.toString(lotto));
	
	
	//오름차순 정렬 : 작은 값에서 큰 값 순서대로 위치를 바꿉니다.
	Arrays.sort(lotto);   //lotto 배열값들을 순서대로 위치 변경합니다.
	System.out.println(Arrays.toString(lotto));
	
	
	//    k=23;   //삭제할 위치의 인덱스
	//	for(int i=k;i<numbers.length-1;i++) {
	//		numbers[i] = numbers[i+1]; // 인덱스 i+1의 배열값을 인덱스 i의 값으로 변경.
	//	}		
	//		System.out.println(Arrays.toString(numbers));

}

}


위의 소스코드를 실현하면 아래와 같이 로또번호가 임의로 배정되어 나온다.



profile
꿈을 이루는 사람

0개의 댓글