JAVA/문제 풀어보기

[문제] 로또 출력프로그램

solytory 2025. 7. 13. 20:49

 

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

==========================
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. 프로그램 종료
==========================
메뉴선택 : 2 <-- 입력

감사합니다

 

1차 코드

package kr.basic;

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

public class LottoProgram {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int money = 1000;
        Random random = new Random();
        do {
            System.out.println("==========================");
            System.out.println("Lotto 프로그램");
            System.out.println("==========================");
            System.out.println("1. Lotto 구입 \n2. 프로그램 종료");
            int selectNum = scanner.nextInt();
            scanner.nextLine();
            if(selectNum ==1){
                System.out.println("Lotto 구입 시작 \n(1000원에 로또번호 하나입니다.)");
                System.out.print("금액 입력 : ");
                int inputMoney = scanner.nextInt();
                scanner.nextLine();
                int count = inputMoney/money;
                int change = inputMoney % money;
                for (int i = 0; i < count; i++) {
                    // 여기서 로또 번호 출력해야함
                    System.out.println("로또 번호" + (i + 1) + " : " + randomValue() );
                }

                System.out.println("받은 금액은 " +  inputMoney + "원이고 거스름돈은 " + change + "원입니다.");
            }else if(selectNum ==2){
                System.out.println("감사합니다");
                return;
            }else{
                System.out.println("잘못된 번호 입력으로 로또번호 랜덤추출이 종료됩니다.");
                return;
            }
        }while (true);
    }

    public static String randomValue(){
        Random random = new Random();
        int[] randoms = new int[6];
        String result ="";
        for (int i = 0; i < 6; i++) {
            int randomValue = random.nextInt(45) + 1;
            randoms[i] = randomValue;
            result += randomValue;
            if(i<5) result += ", ";
        }
        return result;
    };
}

 

일단 성공! 근데 로또번호는 같은 나오면 안 되는데.. 예외처리를 어떻게 해줘야 할지.. 감을 못 잡고 있다....

추가로 작업하면 아래에 작성해 놓을 예정!

'JAVA > 문제 풀어보기' 카테고리의 다른 글

[문제]다형성 활용  (1) 2025.07.13
[문제] 계산기 프로그램  (4) 2025.07.13
[문제] 가위바위보게임  (3) 2025.07.12