24.06.06

윤지현·2024년 6월 6일

TIL

목록 보기
7/75

Lv2. 스파르타 자판기

조건

1. 사용자가 볼 수 있게 메뉴를 표시합니다.

   - 다음과 같은 음료를 실행창에 표시합니다.
    - 사이다 1,700원
    - 콜라 1,900원
    - 식혜 2,500원
    - 솔의눈 3,000원

2. 사용자는 음료를 선택할 수 있습니다.

- 사용자에게 어떤 음료를 살 것인지를 입력받습니다.
    - ex) 사이다
    - 목록에 없는 음료일 경우 실행이 종료됩니다.

3. 사용자는 지불할 금액을 입력할 수 있습니다.

- 사용자에게 얼마를 넣을지 입력받습니다.
    - ex) 2000
    - 지불하는 금액이 선택한 음료의 비용보다 작다면 
    		“돈이 부족합니다.” 를 출력합니다

4. 사용자는 음료를 구매하고 남은 잔액을 확인할 수 있습니다.

- 잔액을 화면에 표시합니다.
 - ex) 입력한 돈 2000원, 사이다 1700원 일때 300원을 잔액으로 보여줍니다.

실행화면

코드

import java.util.HashMap;
import java.util.Scanner;

public class SpartaMachine {

    public static void main(String[] agrs) {
        HashMap<String, Integer> vending_machine = new HashMap<>();
        vending_machine.put("사이다", 1700);
        vending_machine.put("콜라", 1900);
        vending_machine.put("식혜", 2500);
        vending_machine.put("솔의눈", 3000);

        for (String key : vending_machine.keySet()) {
            int value = vending_machine.get(key);
            System.out.println("음료 : " + key+ " / 가격 : " + value + "원");
        }

        Scanner scan = new Scanner(System.in);

        System.out.printf("어떤 음료를 사시겠습니가? : ");
        String drink = scan.next();
        if (vending_machine.containsKey(drink)) {
            System.out.printf("얼마를 지불하겠습니까?");
            int coin = scan.nextInt();
            if (vending_machine.get(drink) > coin)
            {
                System.out.println("돈이 부족합니다.");
            } else {
                int remain = coin - vending_machine.get(drink);
                System.out.println("남은 잔액 : " + remain +"원");
            }
        } else {
            System.out.println("해당 음료가 없으로 종료하겠습니다.");
        }
        scan.close();
    }
}

다른 방식

1. 음료수, 가격이 각자 들어간 String, int 배열 선언하고, 이를 for문을 통해 HashMap<>에 넣기

private static String[] drink = {"사이다", "콜라", "식혜", "솔의눈"};
private static int[] price = {1700, 1900, 2500, 3000};
for (int i=0; i<drink.length; i++) {
    vending_machine.put(drink[i], price[i]);
}

2. entrySet()을 이용하여 Map의 모든 키-값 쌍에 대한 반복 작업 수행

for (Map.Entry<String, Integer> drinkPrice : vending_machine.entrySet()) 
{
		System.out.println("음료 : " + drinkPrice.getKey() + " 가격 : " + drinkPrice.getValue());
}
profile
첫 시작

0개의 댓글