[JAVA] 자바 - Math.random() 으로 로또 만들기
IT/JAVA

[JAVA] 자바 - Math.random() 으로 로또 만들기

보기 좋게 설명 먼저 적어 놓았습니다.

 

가장 큰for문 안에 while문 넣어 놓은 형태입니다.  

while 문 안에 

    if문으로 0인 경우 골라내기  와 for문으로 이전 로또숫자와 같은 숫자 골라내기

      가 존재

import java.util.Scanner;
public class 로또 번호 생성기{
	public static void main(String[] args) {
    /*********코드 시작*********/
		int Lotto[] = new int[6];//로또 번호 받을 배열
		int Random = 0;//Random숫자 담을 변수
        
    /*****최종 완성된 로또 번호 입력 반복문*****/
		for(int i = 0 ; i < 6; i++)
		{
        
	/*****로또 번호 생성 반복문*****/
    		while(true)
			{
				Random = (int)(Math.random()*100 %45); // 하단 추가설명 1번
				System.out.printf("%d ",Random);// 숫자 확인 차 넣음
                
                if(Random == 0)
				{
					continue;// 영이 나올 경우 
			 	}
                

				for(int j=0;j<5;j++)
				{
					if(Random == Lotto[i])// 같은 숫자일 경우
						continue; //
				}
                
     /**** 모든 조건 만족했다면 ****/
				break;
			}
    //****모든 검사를 마친 로또번호에 집어 넣자****//
			Lotto[i] = Random;
			
		}
		System.out.println("");
		for(int k=0;k<6;k++)
			System.out.printf("%d ",Lotto[k]);
		
	}
}

 

추가설명

  Random = (int)(Math.random()*100 %45);

(int) 캐스팅

-> random메쏘드는 float형의 임의의 값을 반환합니다.

Math.random()

-> 0.0 과 ~ 1.0 사이의 난수를 생성합니다.

* 100 

-> 0.0~1.0 사이의 값에 100을 곱해 0.0 ~ 100.0 사이의 값을 반환하게 했습니다.

% 45

-> 45미만의 숫자를 골라내기 위해 사용했습니다.

 

 

 

코드는 많이 미흡할 수 있습니다. 

혹시 간결한 코드 있으면 공유해주세요^^

감사합니다~