자바스크립트의 경우 이전 포스팅을 참고 해주세요.
시작 전, 로또번호에 대해서 정의해보겠습니다.
첫번째, 중복되는 숫자가 없고
두번째, 숫자 범위는 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;
}
}
}
}
}
}
댓글