본문 바로가기
study/Java

[Java] 16. 배열 (로또번호생성)

by 금이패런츠 2022. 3. 15.
728x90
반응형
package chap5;

import java.util.Arrays;

/*
 * 로또번호 생성
 */
public class ArrEx3 {
	public static void main(String[] args) {
		
        // 1.balls 배열에 1 ~ 45까지 값을 저장하기
		int balls[] = new int[45];
		for (int i=0; i<balls.length; i++) {
			balls[i] = i+1;
			System.out.print(balls[i] + ",");
		}
		
		// 2.balls 배열의 값을 섞기
		System.out.println();
		for(int i=0; i<10000; i++) {
			int f = (int)(Math.random() * 45); // 0 ~ 44 사이의 임의의 수
			int t = (int)(Math.random() * 45); // 0 ~ 44 사이의 임의의 수
			//인덱스 : 0 1 2 3 4 5 6 7
			//balls: 1,2,3,4,5,6,7,8,9, ... 45
			int tmp = balls[f]; //tmp = balss[2]
			balls[f] = balls[t];
			balls[t] = tmp;
		}
		for (int i=0; i<balls.length; i++) {
			System.out.print(balls[i] + ",");
		}
		int[] lottos = new int[6];
		
		// 3.balls의 값 6개를 lottos 배열에 저장
		System.out.println();
		for (int i=0; i<lottos.length; i++)
			lottos[i] = balls[i];
		for (int i=0; i<lottos.length; i++) {
			System.out.print(lottos[i] + ",");
		}
		
		System.out.println();
		//Arrays 클래스  : 배열에 필요한 메서드를 멤버로 가진 클래스
		//sort(lottos) : lottos배월의 요소들을 정렬하는 기능
		//   정렬 : 순서대로 배치하기
		Arrays.sort(lottos); //배열의 값 정렬하기
		for (int i=0; i<lottos.length; i++) {
			System.out.print(lottos[i] + ",");
		}

		//개선된 for문
		//인덱스(첨자)를 사용하지 않고 요소값들을 출력하기
		System.out.println();
		for (int num : lottos)
			System.out.print(num + ",");
		System.out.println();
	}
}
728x90
반응형