본문 바로가기

HighJava

Lotto

package kr.or.ddit.basic;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import java.util.Scanner;

/*사용자는 로또를 구매할 때 구매할 금액을 입력하고
입력한 금액에 맞게 로또번호를 출력한다.
(단, 로또 한장의 금액은 1000원이며 최대 100장까지만 구입할 수 있고,
     거스름돈도 계산하여 출력한다.)

	==========================
            Lotto 프로그램
	--------------------------
	 1. Lotto 구입
	 2. 프로그램 종료
	==========================		 
	메뉴선택 : 1  <-- 입력
	
	 Lotto 구입 시작
		 
	(1000원에 로또번호 하나입니다.)
	금액 입력 : 2500  <-- 입력
			
	행운의 로또번호는 아래와 같습니다.
	로또번호1 : 2,3,4,5,6,7
	로또번호2 : 20,21,22,23,24,25
			
	받은 금액은 2500원이고 거스름돈은 500원입니다.
	==========================
         Lotto 프로그램
	--------------------------
	 1. Lotto 구입
	 2. 프로그램 종료
	==========================		 
	메뉴선택 : 1  <-- 입력
			
	 Lotto 구입 시작
		 
	(1000원에 로또번호 하나입니다.)
	금액 입력 : 900  <-- 입력
	
	입력 금액이 너무 적습니다. 로또번호 구입 실패!!!

	==========================
         Lotto 프로그램
	--------------------------
	 1. Lotto 구입
	 2. 프로그램 종료
	==========================		 
	메뉴선택 : 1  <-- 입력
			
	 Lotto 구입 시작
		 
	(1000원에 로또번호 하나입니다.)
	금액 입력 : 101000  <-- 입력
	
	입력 금액이 너무 많습니다. 로또번호 구입 실패!!!
			
   	 ==========================
         Lotto 프로그램
	--------------------------
	  1. Lotto 구입
	  2. 프로그램 종료
	==========================		 
	메뉴선택 : 2  <-- 입력
		
	감사합니다
	*/
public class Lotto {
	public static Scanner scan;

	public static void main(String[] args) {
		scan = new Scanner(System.in);
		lottoTest();
	}

	public static void displayMenu() {
		System.out.println("===============================");
		System.out.println("        Lotto 프로그램");
		System.out.println("-------------------------------");
		System.out.println("1. Lotto 구입");
		System.out.println("2. 프로그램 종료");
		System.out.println("===============================");
	}

	public static void lottoTest() {
		while (true) {
			displayMenu();
			int input = scan.nextInt();
			System.out.println("메뉴 선택: " + input);
			switch (input) {
			case 1:
				purchase();
				break;
			case 2:
				System.out.println("로또 프로그램을 종료합니다.");
				return;
			default:
				System.out.println("잘못된 번호입니다. 다시 입력해주세요.");
			}
		}
	}

	public static void purchase() {

		System.out.println("Lotto 구입 시작");
		System.out.println();
		System.out.println("(1000원에 로또번호 하나입니다.)");
		int buy = scan.nextInt();
		System.out.println("금액 입력: " + buy);
		int count = (buy/1000);
		
		if (buy > 999 && ((buy/1000) < 101)) {
			for(count = 0; count<(buy/1000); count++) {
				lotto();
			}
			System.out.println("받은 금액은 " + buy + " 거스름돈은 " + (buy%1000) + "원입니다.");
		}else if (buy>100000) {
			System.out.println("입력 금액이 너무 많습니다. 로또번호 구입 실패!!!");
		}else if (buy<1000) {
			System.out.println("입력 금액이 너무 적습니다. 로또번호 구입 실패!!!");
		}
		}

	public static void lotto() {
		ArrayList<Integer> list = new ArrayList<>();
		Random rd = new Random();
		for (int i = 0; i < 6; i++) {
			int lottoNum = rd.nextInt(45)+ 1;
			list.add(lottoNum);
			Collections.sort(list);
			}
		System.out.println(list);
		}
		
	}