JAVA

[JAVA] 배열 활용 (로또 랜덤 번호 생성 프로그램 만들기)

dauneee 2022. 1. 2. 23:25
< 조건 >

1. 6개의 랜덤의 숫자와 보너스 점수를 로또 배열에 저장한다.

2. 사용자에게 1부터 45까지의 6개의 숫자를 입력받아 배열에 저장한다.

3. 사용자에게 보저스 점수를 입력 받는다.

4. 사용자가 입력한 값과 로또 배열의 있는 값을 비교하여 동일한 값의 개수를 Count 한다.

5. 몇 개의 숫자를 맞추었는지 다음과 같은 조건에 따라 등수를 출력한다.

- 6개의 숫자 중 5개의 숫자와 보너스 번호를 맞히면 1등
- 6개의 숫자 중 5개의 숫자를 맞히면 2등
- 6개의 숫자 중 4개의 숫자를 맞히면 3등
- 6개의 숫자 중 3개의 숫자를 맞히면 4등
- 6개의 숫자 중 2개의 숫자를 맞히면 5등


1. 필요한 라이브러리 파악 하기

 

1) 사용자에게 입력받기

Scanner sc=new Scanner(System.in);

2) 랜덤 함수 생성하기

Random random=new Random();

 

 

 

2. 필요한 변수 생성하기

 

- 6개의 로또번호를 저장할 배열

- 보너스 숫자를 저장할 변수

- 사용자에게 6개의 숫자를 입력받아 저장할 변수

- 사용자에게 보너스를 입력받아 저장할 변수

- 동일한 숫자가 몇 개인지 Count 할 변수

 

		int Lotto[] = new int[6]; // 로또번호 저장할 배열
		int User[] = new int[6];  // 보너스 숫자 저장할 배열
		int bonus,bonususer;      // 보너스 숫자와 로또 번호를 저장할 변수 
		int count=0;              // 동일한 숫자가 몇개인지 카운팅할 변수

3. 위에 조건대로 구현하기

 

1) 6개의 랜덤의 숫자와 보너스 점수를 로또 배열에 저장한다.

 

		for (int i=0;i<6;i++) { // 로또배열에 6개의 랜덤 값을 저장
			Lotto[i]=rand.nextInt(45)+1;  // 1부터 45까지
		}
		bonus=rand.nextInt(45)+1;

2) 사용자에게 1부터 45까지의 6개의 숫자를 입력받아 배열에 저장한다.

3) 사용자에게 보너스 점수를 입력받는다.

 

		System.out.println("숫자를 6개 입력하세요");  // 6개의 숫자 입력 받기
		for(int i=0;i<6;i++) {
			User[i]=sc.nextInt();
		}
		System.out.println("보너스 숫자를 입력하세요"); // 보너스 값 입력 받기
		bonususer=sc.nextInt();



4) 사용자가 입력한 값과 로또 배열의 있는 값을 비교하여 동일한 값의 개수를 Count 한다.

 

	for(int j=0;j<0;j++) {     // 로또 번호와 보너스 값 중 중복 값이 몇개인지 카운팅하기
		 
			for (int i=0;i<6;i++) {
				if(Lotto[j]==User[i]) {
					count++;
				}
			}
		}


5) 몇 개의 숫자를 맞추었는지 다음과 같은 조건에 따라 등수를 출력한다.

 

// count 값 개수에 따라 등수 정하기
			
    if(count==6) {
			System.out.println("축하합니다! 1등에 당첨되었습니다");
		}

		else if(count==5) {
			if(bonus==bonususer) {
				System.out.println("축하합니다! 2등에 당첨되었습니다");
			}
			else {
				System.out.println("축하합니다! 3등에 당첨되었습니다");
			}
		}
		else if(count==4) {
			System.out.println("축하합니다! 4등에 당첨되었습니다");
		}

		else if(count==3) {
			System.out.println("축하합니다! 5등에 당첨되었습니다");
		}
		else {
			System.out.println("아쉽지만 다음 기회에!!!!");
		}

< 전체 코드 >

 

package qoduf;

import java.util.Random;
import java.util.Scanner;

public class Test1 {



	public static void main(String[] args) {

		Random rand = new Random();
		Scanner sc =new Scanner(System.in);

		int Lotto[] = new int[6]; // 로또번호 저장할 배열
		int User[] = new int[6];  // 보너스 숫자 저장할 배열
		int bonus,bonususer;      // 보너스 숫자와 로또 번호를 저장할 변수 
		int count=0;              // 동일한 숫자가 몇개인지 카운팅할 변수


		for (int i=0;i<6;i++) { // 로또배열에 6개의 랜덤 값을 저장
			Lotto[i]=rand.nextInt(45)+1;  // 1부터 45까지
		}
		bonus=rand.nextInt(45)+1;


		System.out.println("숫자를 6개 입력하세요");  // 6개의 숫자 입력 받기
		for(int i=0;i<6;i++) {
			User[i]=sc.nextInt();
		}
		System.out.println("보너스 숫자를 입력하세요"); // 보너스 값 입력 받기
		bonususer=sc.nextInt();

		
		
		 // 로또 번호와 보너스 값 중 중복 값이 몇개인지 카운팅하기
		
		for(int j=0;j<0;j++) {         
			for (int i=0;i<6;i++) {
				if(Lotto[j]==User[i]) {
					count++;
				}
			}
		}

		
		// count 값 개수에 따라 등수 정하기
		
		if(count==6) {
			System.out.println("축하합니다! 1등에 당첨되었습니다");
		}

		else if(count==5) {
			if(bonus==bonususer) {
				System.out.println("축하합니다! 2등에 당첨되었습니다");
			}
			else {
				System.out.println("축하합니다! 3등에 당첨되었습니다");
			}
		}
		else if(count==4) {
			System.out.println("축하합니다! 4등에 당첨되었습니다");
		}

		else if(count==3) {
			System.out.println("축하합니다! 5등에 당첨되었습니다");
		}
		else {
			System.out.println("아쉽지만 다음 기회에!!!!");
		}

	}
}