import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
String coffee = null;
System.out.println("커피 주문 하세요 >>");
coffee = sc.next();
System.out.println(getCoffeePrice(coffee));
}
// 커피가격 할인율 적용하여 계산
private static String getCoffeePrice(String value) throws Exception {
// 에스프레소는 2000원,
// 아메리카노는 2500원,
// 카푸치노 3000원,
// 카페라떼 3500원이다.
// 5잔 이상 주문시 해당 제품 가격의 5%를 할인해 준다.
// 에스프레소는 10장 이상 주문시 에스프레소 가격에 추가로 10% 할인
String result = "";
String[] array1 = value.split("-");
if(array1.length == 1) { // 스캐너 사용시 공백을 하면 문자가 끝겨서 사용을 하시면 안됩니다.
System.out.println("하으픈(-)과 콤마(,) 로 커피와 잔수를 구분해 주세요. ex) 에스프레소-1 ex) 에스프레소-2,아메리카노-3");
throw new Exception("입력값 에러");
}
if(value.indexOf("에스프레소") != -1 || value.indexOf("아메리카노") != -1 || value.indexOf("카푸치노") != -1
|| value.indexOf("카페라떼") != -1) {
} else {
System.out.println("주문 할수 없는 커피 입니다. (에스프레소, 아메리카노, 카푸치노, 카페라떼 만 주문 가능)");
throw new Exception("입력값 에러");
}
int calculate = 0;
int discount = 0;
int espreso = 0;
double coffeePrice = 0f;
if(value.indexOf(",") != -1) {
array1 = value.split(",");
for(int i=0; i<array1.length; i++) {
String[] array2 = array1[i].split("-");
calculate += coffeePay(array2[0], Integer.parseInt(array2[1]));
discount += Integer.parseInt(array2[1]);
if(array2[0].equals("에스프레소")) {
espreso += Integer.parseInt(array2[1]);
}
}
} else {
calculate += coffeePay(array1[0], Integer.parseInt(array1[1]));
discount += Integer.parseInt(array1[1]);
if(array1[0].equals("에스프레소")) {
espreso += Integer.parseInt(array1[1]);
}
}
// 할인율 계산
if(discount >= 5) {
coffeePrice = calculate - (calculate * 0.05);
}
if(espreso >= 10) {
coffeePrice = coffeePrice - ((2000 * espreso) * 0.1);
}
if(coffeePrice == 0) {
coffeePrice = calculate;
}
result = coffeePrice + "원 입니다";
return result;
}
private static int coffeePay(String value, int su) {
int result = 0;
if(value.equals("에스프레소")) {
result = 2000 * su;
} else if(value.equals("아메리카노")) {
result = 2500 * su;
} else if(value.equals("카푸치노")) {
result = 3000 * su;
} else if(value.equals("카페라떼")) {
result = 3500 * su;
}
return result;
}
}
'IT, 인터넷 > JAVA, 스프링부트' 카테고리의 다른 글
화면에서 넘어온 값 split으로 잘라서 업데이트 하기 (0) | 2021.09.27 |
---|---|
자바 float, double 소수점 계산하기 (0) | 2021.09.24 |
자바 클래스에서 순서, 이름, 과목1, 과목2, 합계, 평균 출력 하기 (0) | 2021.09.24 |
자바 2차원배열값의 합과 평균 구하기 (0) | 2021.09.23 |
자바 LIST, ArrayList, getter, setter 사용하여 클래스 변수에 값 넣고 확인 하기 (0) | 2021.09.18 |