< day0908 – day0908 – ArrayTest08 >

-> 1~45라고 적힌 공을 6번 <<복원 or 비복원>> 추출

package day0908;

import java.util.Arrays;
import java.util.Random;

public class ArrayTest08 {

	public static void main(String[] args) {
		
		/* 
		<표현 방법 1> - 초기화 리스트 선언
		double num[] = {3.14, 2.5, 4.6}; 
		
		<표현 방법 2>
		double num[] = new double[3];
		num[0] = 3.14;
		num[1] = 2.5;
		num[2] = 4.6;
		*/
		
		
		// 로또 번호 생성(Random 클래스) : 1~45라고 적힌 공을 6번 <<복원 or 비복원>> 추출
		int lotto[] = new int[6];
		
		Random ran = new Random();
		
		
		/* (번호 생성하여 배열에 저장)
		lotto[0] = ran.nextInt(45) + 1; // (0~44) + 1 => 1~45 
		lotto[1] = ran.nextInt(45) + 1;  
		lotto[2] = ran.nextInt(45) + 1; 
		lotto[3] = ran.nextInt(45) + 1;  
		lotto[4] = ran.nextInt(45) + 1; 
		lotto[5] = ran.nextInt(45) + 1;
		*/  
		
		
		/*
		// << 복원 추출 >>
		
		// (번호 생성하여 배열에 저장)을 for 문으로 표현
		int len = lotto.length;
		for(int i = 0; i < len; i++) {
			lotto[i] = ran.nextInt(45) + 1;
		}
		
		// (번호 출력) 
		for(int i = 0; i < len; i++) {
			System.out.print(lotto[i]+" "); // "" -> 띄어쓰기 X , " " -> 띄어쓰기 O
		}
		*/
		
		
		
		// << 비복원 추출 >> ····· 8.31(2) 정리 내용 참조
		 
		// (번호 생성하여 배열에 저장)을 for 문으로 표현
		int len = lotto.length;
		for(int i = 0; i < len; i++) {
			int temp = ran.nextInt(45) + 1;
			boolean check = false;
			
			// 중복 체크
			for(int j = 0; j < i; j++) { 
				if(lotto[j] == temp) { 
					check = true;
				}
			}
			if (check) { // check가 false일 경우 if 문 바로 탈출 , check가 true일 경우 실행문 실행
				i--;
				continue; /* if의 조건문이 true일 경우, 
				             for 문의 증감문(이 경우, 감싸고 있는 맨 처음에 있는 for 문)으로 그 즉시 이동 */
			}
			
			// 중복 번호가 없을 때만
			lotto[i] = temp;
			
		}
				
		// (번호 출력)
		Arrays.sort(lotto); // 오름차순 정렬
		for(int i = 0; i < len; i++) {
			System.out.print(lotto[i]+" "); 
		}
		 
	}

}

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Arrays.html#method.summary

1.png