[Java] random()을 사용해 로또 번호 추출하기

1362 단어 JavaJava

1. Math.random()을 사용하여 정수 추출

  • Math.random()의 리턴값 범위
    • Math.random()은 0.0과 1.0 사이의 double 타입을 하나 리턴
    • 0.0 <= Math.random() < 1.0
  • double → int 명시적(강제) 타입 변환
    • 명시적 타입 변환은 캐스팅(Casting)이라고도 함
    • (int)Math.random()

2. 중복 제거

  • 로또 번호는 중복 없는 6개의 정수로 이루어짐
  • random()으로 추출한 정수는 배열 lotto에 저장되며, 마지막으로 추출된 정수는 lotto[i]에 저장
  • 따라서, lotto[0] ~ lotto[i]까지 돌면서 lotto[i]와 동일한 숫자가 있을 시 마지막에 추출한 정수 lotto[i]는 배열에서 제거
for (int j = 0; j < i; j++) {
	if (lotto[j] == lotto[i]) {
		i--;
	} 
}

3. 최종 소스코드

package Practice;

import java.util.Arrays;

public class Lotto {

	public static void main(String args[]) {
		int lotto[] = new int[6]; // 정수 배열 생성
		
		for (int i = 0; i < 6; i++)
		{
			lotto[i] = (int)(Math.random() * 45) + 1; // 정수 생성
            
			/*
            		* 여기서 i를 감소시키는 것은 중복된 숫자가 발생했을 시
                    	* 마지막에 추가된 중복을 배열에서 제거함으로
                        * 기존에 추가된 다른 값에는 영향 없음
            		*/
			for (int j = 0; j < i; j++) {
				if (lotto[j] == lotto[i]) {
					i--; // 
				}
			}
		} 
		
		Arrays.sort(lotto); // 오름차순으로 정렬
		System.out.println(Arrays.toString(lotto)); // System.out.println(lotto)시 참조값(주소값) 출력
	}
}

좋은 웹페이지 즐겨찾기