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()); }