본문 바로가기
JAVA/자바 실습 중심 학습

랜덤 숫자 생성기 (로또)

by DEVLIB 2025. 4. 11.
728x90

최종 코드 예제

import java.util.Random;

public class LottoGenerator {
    public static void main(String[] args) {
        int[] lotto = new int[6];
        Random rand = new Random();

        for (int i = 0; i < 6; i++) {
            int num = rand.nextInt(45) + 1;  // 1~45

            // 중복 검사
            boolean duplicate = false;
            for (int j = 0; j < i; j++) {
                if (lotto[j] == num) {
                    duplicate = true;
                    break;
                }
            }

            if (duplicate) {
                i--; // 중복이면 다시 뽑기
            } else {
                lotto[i] = num;
            }
        }

        // 결과 출력
        System.out.print("이번 주 로또 번호: ");
        for (int n : lotto) {
            System.out.print(n + " ");
        }
    }
}

코드 설명

코드 설명
int[] lotto = new int[6]; 6개의 로또 번호 저장
rand.nextInt(45) + 1 1~45 사이의 정수 생성
중복 검사 이미 나온 번호면 다시 반복 (i--)
향상된 for문 for (int n : lotto) → 배열 요소 전체 출력

실행 예시

이번 주 로또 번호: 7 14 23 38 1 31

보너스: 정렬된 로또 번호 출력

import java.util.Arrays;
Arrays.sort(lotto);
System.out.println(Arrays.toString(lotto));

확장 아이디어

  • HashSet을 활용해서 중복 자동 제거
  • 여러 세트 출력 (예: 5게임 출력)
  • 사용자 입력 숫자와 비교하여 맞춘 개수 계산

정리 요약

배운 개념 설명
Random 랜덤 숫자 생성
배열 여러 개 숫자 저장
for 반복문 번호 6개 생성
if, boolean 중복 체크
향상된 for문 배열 출력에 사용

 

LIST