SMALL
1. 동작원리
<카페 프로그램 기능>
(1) 주문하기: 주문 가능 메뉴 출력 > 메뉴 입력 > 가격 총 금액 누적 > 전체 메뉴 리스트에 저장 > 주문 갯수 한 개 증가
(2) 취소하기: 주문 메뉴 리스트 출력 > 취소 메뉴 입력 > 입력 메뉴를 리스트에서 제거 > 금액 감소 > 주문 갯수 한 개 감소
(3) 결제하기: 결제 총 금액 출력 > 지불 금액 입력 > 금액 확인 > 주문리스트 0원으로 초기화 > 전체 갯수 0개로 초기화
(4) 끝내기: 원할 때 끝내기
2. 코드
import java.io.*;
import java.util.*; // scanner, random
// 카페 주문 프로그램 알고리즘
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int total_num = 0; // 전체 개수 저장
String[] menu_arr = new String[5];
// 주문 메뉴 저장 배열 (메뉴 주문은 5개까지 가능)
int total_money = 0; // 총 금액 저장
// 무한 반복
while (true) {
System.out.println(" ♥ CAFE ♥ ");
System.out.println("1. 주문하기");
System.out.println("2. 취소하기");
System.out.println("3. 결제하기");
System.out.println("4. 끝내기");
System.out.print("입력: ");
int num = sc.nextInt();
// 입력 값에 따라 실행 다르게!
if (num == 1) { // 주문하기
String menuName = ""; // 메뉴 이름
int menuPrice = 0; // 메뉴 금액
System.out.println("1. 아메리카노 \t3800원");
System.out.println("2. 에스프레소 \t2400원");
System.out.println("3. 카페라떼 \t4200원");
System.out.println("4. 밀크티 \t\t5100원");
System.out.print("주문 할 메뉴 번호: ");
int menuNum = sc.nextInt();
if (menuNum == 1) {
menuName = "아메리카노";
menuPrice = 3800;
} else if (menuNum == 2) {
menuName = "에스프레소";
menuPrice = 2400;
} else if (menuNum == 3) {
menuName = "카페라떼";
menuPrice = 4200;
} else if (menuNum == 4) {
menuName = "밀크티";
menuPrice = 5100;
} else {
System.out.println("메뉴 번호 잘못 입력!");
continue; // 처음으로 돌아가라!
}
total_money += menuPrice;
menu_arr[total_num] = menuName;
// total_num : 내가 현재 menuName을 넣어야 할 문자열의 위치!
total_num++;
System.out.println("주문한 메뉴는 " + menuName + "입니다.");
System.out.println("가격은 " + menuPrice + "원 입니다.");
} else if (num == 2) { // 취소하기
System.out.println("---주문한 메뉴 리스트---");
for (int i = 0; i < total_num; i++) {
System.out.println(menu_arr[i]);
}
System.out.print("취소 할 메뉴 번호: ");
int delNum = sc.nextInt();
if (delNum >= 1 && delNum <= total_num) {
String delMenu = menu_arr[delNum - 1];
// 인덱스 값은 "번호 - 1"
System.out.println(delMenu + "메뉴 삭제!");
for (int i = delNum - 1; i < total_num; i++) {
menu_arr[i] = menu_arr[i + 1];
// 삭제 된 부분으로 인해 뒷 값을 앞으로 위치 변경
}
if (delMenu.equals("아메리카노")) {
// equals (같은지 판단)
total_money -= 3800;
} else if (delMenu.equals("에스프레소")) {
total_money -= 2400;
} else if (delMenu.equals("카페라떼")) {
total_money -= 4200;
} else if (delMenu.equals("밀크티")) {
total_money -= 5100;
}
total_num--;
}
} else if (num == 3) { // 결제하기
System.out.println("결제 금액: " + total_money + "원");
System.out.println("지불 금액: ");
int money = sc.nextInt();
if (money < total_money) {
System.out.println("지불 금액이 부족합니다.");
continue;
} else {
System.out.println("잔돈은 " + (money - total_money) + "원 입니다.");
for (int i = 0; i < 5; i++) {
menu_arr[i] = ""; // 초기화
}
total_num = 0;// 초기화
}
} else if (num == 4) { // 끝내기
System.out.println("반복 종료");
break;
} else {
System.out.println("주문 번호 잘못 입력!");
}
}
}
}
3. 개념 짚기
- 무한 반복 (종료 조건과 함께 사용!) -> while(true)
- 조건문 종료 시 break, 계속 진행 시 continue
- 문자열 배열 String[]
728x90
'JAVA' 카테고리의 다른 글
[멘토씨리즈] 23강 - 생성자 (0) | 2023.06.21 |
---|---|
[멘토씨리즈] 22강 - 객체 배열 생성 (0) | 2023.05.26 |
[멘토씨리즈 JAVA] 13강 배열 - 로또번호 생성기 (2) | 2023.05.21 |
[JAVA] 모각코 활동 후기 :) (0) | 2021.08.30 |
[JAVA] 모각코 _ 15일차 (0) | 2021.08.27 |
댓글