사용자가 볼 수 있게 메뉴를 표시합니다.
다음과 같은 음료를 실행창에 표시합니다.
- 사이다 1,700원
- 콜라 1,900원
- 식혜 2,500원
- 솔의눈 3,000원
사용자의 음료선택, 사용자의 음료 구입후 남은 금액까지 표시한다.
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 음료 목록과 가격을 초기화
Map<String, Integer> beverages = Map.of(
"사이다", 1700,
"콜라", 1900,
"식혜", 2500,
"솔의눈", 3000
);
Scanner scanner = new Scanner(System.in);
// 사용자로부터 돈을 입력받음
System.out.print("돈을 입력하세요: ");
int coin = scanner.nextInt();
scanner.nextLine(); // 버퍼 비우기
// 음료 선택 및 구매 과정
System.out.println("음료를 선택하세요: " + beverages.keySet());
String userChoice = scanner.nextLine();
// 선택한 음료가 목록에 있는지 확인
if (beverages.containsKey(userChoice)) {
int price = beverages.get(userChoice);
// 돈이 충분한지 확인
if (coin < price) {
System.out.println("돈이 부족합니다.");
} else {
int remain = coin - price;
System.out.println(userChoice + "를(을) 구매했습니다. 남은 돈: " + remain + "원");
}
} else {
System.out.println("선택한 음료가 없습니다.");
}
scanner.close();
}
}
주요 변경 사항 및 설명
- 음료 목록 초기화:
- Map.of를 사용하여 음료와 가격을 초기화합니다.
Map<String, Integer> beverages = Map.of( "사이다", 1700, "콜라", 1900, "식혜", 2500, "솔의눈", 3000 );
- Map.of를 사용하여 음료와 가격을 초기화합니다.
- 사용자로부터 돈을 입력받음:
- scanner.nextInt()를 사용하여 돈을 입력받습니다. nextLine()을 사용하여 버퍼를 비웁니다.
- Scanner scanner = new Scanner(System.in); System.out.print("돈을 입력하세요: "); int coin = scanner.nextInt(); scanner.nextLine(); // 버퍼 비우기
- 음료 선택 출력:
- beverages.keySet()을 사용하여 음료 목록을 출력합니다.
- scanner.nextLine()을 사용하여 사용자의 선택을 입력받습니다.
- System.out.println("음료를 선택하세요: " + beverages.keySet()); String userChoice = scanner.nextLine();
- 선택한 음료가 목록에 있는지 확인하고, 돈이 충분한지 확인:
- containsKey를 사용하여 선택한 음료가 목록에 있는지 확인합니다.
- 돈이 충분한지 확인하고, 남은 돈을 계산하여 출력합니다.
\if (beverages.containsKey(userChoice))
{ int price = beverages.get(userChoice);
if (coin < price) { System.out.println("돈이 부족합니다."); }
else { int remain = coin - price; System.out.println(userChoice + "를(을) 구매했습니다. 남은 돈: " + remain + "원"); }
} else { System.out.println("선택한 음료가 없습니다."); }
- Scanner 객체 닫기:
- 입력 스트림을 닫아 리소스를 해제합니다.
- scanner.close();
'(Java)코테연습' 카테고리의 다른 글
문자열끼리 크기 비교하는 경우 (0) | 2024.07.12 |
---|---|
각각의 배열에서 3개의 정수 합이 0이 되어야 하는경우 (0) | 2024.07.12 |
이상한 문자 만들기 (split, toUpperCase, toLowerCase 사용) (0) | 2024.07.11 |
랜덤 닉네임 생성 (0) | 2024.07.10 |
(자바 코테연습) 최대공약수와 최고 공배수 (0) | 2024.07.10 |