본문 바로가기
Java

[Java] 로또 번호 출력 / 임의 숫자 출력 / 중복 없이

by bkuk 2022. 10. 4.

자바스크립트의 경우 이전 포스팅을 참고 해주세요.

 

[Javascript] set() 메서드 / 임의 숫자 출력 / Math.radom() 메서드 / break / 로또번호 만들기

지금까지 공부했던 내용을 기반으로 로또 번호를 console에 출력하는 프로그램을 만들어보겠습니다. 반복 가능한 객체 new Set([iterable]" data-og-host="starting-coding.tistory.com" data-og-source-url="http..

starting-coding.tistory.com


 

시작 전, 로또번호에 대해서 정의해보겠습니다.

 

첫번째, 중복되는 숫자가 없고

두번째, 숫자 범위는 1 이상 ~ 45 이하이면서,

세번쨰, 6개의 숫자를 출력하는데

네번쨰, 6줄을 출력한다.

 

예를들어서 출력한다면 아래 그림처럼 만들어보겠습니다.(0회차는 테스트용 )


// 배열 객체 생성
int LottoNumberArray[] = new int[6];
// 난수 객체 생성
Random r1 = new Random();

초기에는 자료형이 정수인 크기가 6개인 배열 객체를 생성함과 동시에,

난수를 생성하는 객체를 생성했습니다. 

 

 

for( int i = 0; i < 6; i++ ) {	
    LottoNumberArray[i] = (r1.nextInt( 45 ) + 1);
    System.out.print( " "+ LottoNumberArray[i] + " ");
  }

 

난수의 범위를 1 <= x < 46로 만든 후  난수를 6개 대입해보겠습니다.

 

여기서, nextInt() 메서드는?

-2,147,483,648 부터 2,147,483,647 까지의 범위에서 출력되나 인자 값으로 정수를 전달할 경우 정수-1 범위까지 출력

ex) nextInt( 10 ) → 0 ~ 9까지의 정수 출력

 

 

그렇다면 중복을 제거 할 수 있는 로직을 넣어보겠습니다.

만약, 중복이 된다면 아래 흐름도 처럼 진행된다고 이해하시면 됩니다.

 

 

6개씩 6줄 출력을 위한 코드가 아래와 같이 추가되었습니다.

 

전체코드

import java.util.Random;

public class LottoNumber {
	public static void main(String[] args) {
		// 배열 객체 만들기
		int LottoNumberArray[] = new int[6];
		// 난수 객체 만들기
		Random r1 = new Random();
		// row 6줄 
		for( int row = 0; row < 6; row ++) {
			if(row >= 1) {
				System.out.println();
			}
			System.out.print( row + " 회차 :");
			
			for( int i = 0; i < 6; i++ ) {	
				LottoNumberArray[i] = (r1.nextInt( 45 ) + 1);
				System.out.print( " "+ LottoNumberArray[i] + " ");
			
				for( int j = 0; j < i; j++) {
                	if( LottoNumberArray[j] == LottoNumberArray[j+1] ) {
						i--;
						break;
					}
				}
			}
		}
	}
}

댓글