Java 콘솔로 상품 구매하여 내역 출력하기
사용자가 구매한 상품을 요약 내역서를 출력하는 프로그램이다.
- 사용자는 3가지 옵션을 제공한다. 상품 입력, 결제, 프로그램 종료 옵션은 정수로 입력 받는다
- 상품 입력은 사용자에게 상품명과 가격, 수량을 입력받아야한다.
- 결제 옵션은 사용자가 비용을 확인하고, 결제를 완료했다는 시나리오이다. 총 비용을 출력하고 0으로 초기화한다.
- 프로그램 종료는 "프로그램을 종료합니다." 메시지를 출력하고 종료한다.
- 3개의 정수가 아닌 다른 값이 오면 "올바른 옵션을 입력하세요." 출력한다.
- 여러 개의 상품을 구매할 수 있고, 언제든지 종료할 수 있어야 한다.
입력 예시
1
김치
4300
3
1
시금치
2400
5
2
999
3
출력 예시
옵션. 1: 상품 입력, 2: 결제, 3. 프로그램 종료
1
상품 이름을 알려주세요 김치
상품 가격을 알려주세요 4300
구매 수량을 알려주세요 3
상품 이름: 김치 가격: 4300원 수량: 3개 총 합계: 12900
옵션. 1: 상품 입력, 2: 결제, 3. 프로그램 종료
1
상품 이름을 알려주세요 시금치
상품 가격을 알려주세요 2400
구매 수량을 알려주세요 5
상품 이름: 시금치 가격: 2400원 수량: 5개 총 합계: 12000
옵션. 1: 상품 입력, 2: 결제, 3. 프로그램 종료
2
총 비용은 24900 원입니다.
옵션. 1: 상품 입력, 2: 결제, 3. 프로그램 종료
999
옵션을 잘못 입력하셨습니다.
옵션. 1: 상품 입력, 2: 결제, 3. 프로그램 종료
3
프로그램을 종료합니다.
Java 실전
public class Store {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int launch = 1;
while (launch == 1) {
String productName;
int productPrice = 0;
int productQuantity = 0;
int totalPrice = 0;
System.out.println("옵션. 1: 상품 입력, 2: 결제, 3. 프로그램 종료");
int option = scanner.nextInt();
scanner.nextLine();
switch (option) {
case 1: {
int sum;
System.out.print("상품 이름을 알려주세요 ");
productName = scanner.nextLine();
System.out.print("상품 가격을 알려주세요 ");
productPrice = scanner.nextInt();
scanner.nextLine();
System.out.print("구매 수량을 알려주세요 ");
productQuantity = scanner.nextInt();
scanner.nextLine();
sum = productPrice * productQuantity;
System.out.println(
"상품 이름: " + productName +
" 가격: " + productPrice +
"원 수량: " + productQuantity +
"개 총 합계: " + sum
);
totalPrice += sum;
break;
}
case 2: {
System.out.println("총 비용은 " + totalPrice + " 원입니다.");
break;
}
case 3: {
System.out.println("프로그램을 종료합니다.");
launch = 0;
break;
}
default: {
System.out.println("옵션을 잘못 입력하셨습니다.");
break;
}
} // End switch
System.out.println();
} // End while
}
}
while, switch 문을 같이 사용하니 코드 줄이 많아졌다. if 문 또는 switch 화살표 연산자로 코드 수를 줄일 수 있지 않을까 생각이 든다.