Java 응용 | 배운거 써먹어서 간단한 배달 주문 + 쿠폰사용하기

Dalyume·2026년 7월 23일

Java 응용

목록 보기
1/15
post-thumbnail

연산자를 배우고 나서, 문뜩 떠올라서 만들게 되었다.

package ch05;

import java.util.*;
import java.io.*;

public class Ex3 {
    public static void main(String[] args) throws IOException {
        Scanner scan = new Scanner(System.in);
        String input;
        boolean check = false;
        int price = 0;

        Map<String, Integer> baemin = new HashMap<>();
        baemin.put("짜장면", 5900);
        baemin.put("치킨마요덮밥", 6900);
        baemin.put("카레라이스", 8500);
        baemin.put("햄버거", 3900);

        Map<String, Integer> cupon = new HashMap<>();
        cupon.put("10%상품권", 10);
        cupon.put("30%상품권", 30);
        cupon.put("25%상품권", 25);

        while (true) {
            String order;
            int count = 0;

            System.out.println("원하시는 메뉴를 입력해주세요.");
            System.out.println("==========메뉴판==========");
            for (Map.Entry<String, Integer> entry : baemin.entrySet()) {
                System.out.println(entry.getKey() + "     " + entry.getValue());
            }

            System.out.print("주문(완료 입력시 종료) : ");
            order = scan.next();

            if (!baemin.containsKey(order)) {
                System.out.println("해당 메뉴를 찾을 수 없습니다. 다시 시도해주십시오.");
                continue;
            }

            System.out.print("수량은 몇 개로 하시겠습니까? : ");
            count = scan.nextInt();

            price += baemin.get(order) * count;

            System.out.print("현재 가격 : " + price + "원\n 계속 하시겠습니까?(Y시 계속) : ");
            check = "Y".equals(scan.next());

            if (!check) {
                break;
            }
        }

        if (cupon.size() != 0) {
            System.out.print("쿠폰을 사용하시겠습니까? (Y시 사용) : ");
            check = "Y".equals(scan.next());

            if (check) {
                int saleValue = 0;
                double totalPrice = 0;
                while (true) {
                    int i = 0;
                    System.out.println("사용하실 쿠폰을 선택해주세요.(타이핑)");
                    for (String k : cupon.keySet()) {
                        System.out.println((i + 1) + ". " + k);
                        i++;
                    }
                    System.out.print("사용할 쿠폰 입력 : ");
                    input = scan.next();

                    if (cupon.containsKey(input)) {
                        saleValue += cupon.get(input);
                        cupon.remove(input);
                    } else {
                        System.out.print("해당 쿠폰을 찾을 수 없습니다. 다시 시도해주세요.");
                        continue;
                    }

                    if (cupon.size() != 0) {
                        System.out.print("쿠폰 사용을 계속하시겠습니까?(Y시 쿠폰 입력으로 이동) : ");
                        check = "Y".equals(scan.next());

                        if(check){
                            continue;
                        } else {
                            break;
                        }
                    } else {
                        break;
                    }

                }

                totalPrice = price * (1 - saleValue / 100.0);
                price = (int) totalPrice;

            }
        }

        System.out.println("결제를 시작합니다. 총 " + price + "원 입니다.");

    }
}

중복으로 주문을 받고, 할인쿠폰도 중복으로 사용해서 총 할인된 가격을 결과물로 내는 간단한 코드이다..


물론 완전하지도, 좋은 코드도 아니지만..초보인데 이정도는 할 수 있구나라는 자신감을 조금이나마 얻었기에 결과를 남기고자 올려보았다.

훈수 환영합니다. 부족한거 많아요..

profile
신생아 개발자

0개의 댓글