Java

[Java] 로또 번호 생성기 (배열 / for문 / Math.random 활용)

소댓 2023. 3. 9. 18:24

* 로또 번호 생성기

> 배열 / for문 / Math.random 활용

 

package day06;
//로또 번호 생성기
public class ArrayEx08 {

	public static void main(String[] args) {
		
		// 1. 45칸 짜리 int 배열을 선언
		
		int[] rnd = new int[45];
	
		// 2. 배열에 1부터 45의 값을 대입
		// 3. 콘솔에 출력 rnd[0] : 1
		for(int i=0; i<rnd.length; i++) {
			rnd[i] = i+1;
		}
		// 4. 랜덤하게 정수 하나를 생성
		// 0*10 <= Math.random()*10 < 1*10
		// rnd[5] : 6
//		System.out.println((int)(Math.random()*10));
		
		// 5. 랜덤하게 0~44 정수 하나를 생성
		// 6. 이건 100번 반복해서 생성
		// 0*45 <= Math.random()*45 < 1*45
//		for(int i=0; i<100; i++) {
//			System.out.println((int)(Math.random()*45));
//		}
	for(int i=0; i<1000; i++) {
		int a = (int)(Math.random()*45);
		int b = (int)(Math.random()*45);
	
//		System.out.println("rnd["+a+"] : "+rnd[a]);
//		System.out.println("rnd["+b+"] : "+rnd[b]);
		
		// 두 변수의 값 교환
		// rnd[2] : 3
		// rnd[44] : 45
		
		int temp = -100; // 전혀 올 수 없는 값을 초기값으로 함
		temp = rnd[a]; // 임시변수에 3을 할당
		rnd[a] = rnd[b]; // 45 값을 rnd[2]에 할당
		rnd[b] = temp; // 3 값을 rnd[44]에 할당
	}		
//		System.out.println("rnd["+a+"] : "+rnd[a]);
//		System.out.println("rnd["+b+"] : "+rnd[b]);
		
//		for(int i = 0; i<45; i++) {
//			System.out.println("rnd[" + i + "] : " + rnd[i]);
//		}
		
		// 6개 출력
		for(int i = 0; i<6; i++) {
			System.out.print(rnd[i]+"\t");
		}
		System.out.println();
	
	}

}