코드 작성 목표 - 4개등급별 할인율을 5~20% 까지 적용하여 구매금액에서 할인되는 내용을 작성 

ENUM사용하기 전 Class 단계에서부터 Enum을 사용하는 단계까지 단계별로 포스트를 이어나가기로함 .

나로써는 좋은 연습이 될 것 같다는 생각이 들었다. 

 

 

먼저 할인율을 계산하기 위해서 클래스 + 매서드를 만들었다. 

package thisjavaexam.enumtest.enumis;
//할인율을 계산하는 클래스를 만들어 활용한다. 
public class DiscountGrade {
	
	//할인율 계산을 위한 매서드 생성.  등급 과 구매금액을 받아 처리 
	public int discountPercent(String grade, int price) {
		// 할인율 (discountPercent)를 계산하지만 지역변수이므로  초기값 설정필요 
		int discountPercent = 0;
		
		//각 그레이드 별로 할인율 5~20프로 까지 , 등급이 아니라면 할인없음/  설정,String으로 비교하므로 == 이 아닌 equals를 활용
		if (grade.equals("BRONZE")) {
			discountPercent = 5;
		} else if (grade.equals("SILVER")) {
			discountPercent = 10;
		} else if (grade.equals("GOLD")) {
			discountPercent = 15;
		} else if (grade.equals("DIAMOND")) {
			discountPercent = 20;
		} else {
			System.out.println(grade + "할인이 없습니다.");
		}
		//최종 할인금액을 계산. 구매금액 * 할인 /100(율) 
		return price * discountPercent / 100;
	}
}

 

실제 할인율이 적용된 금액을 출력해보자. 

package thisjavaexam.enumtest.enumis;
//할인율에 따라 정상적으로 반영되는 메인 클래스 선언
public class GradePriceMain {
		
	public static void main(String[] args) {
		
		//20000원 만큼 결제금액이 있다는 가정
		int price = 20000;
		
		//DiscountGrade 클래스의 생성자 
		DiscountGrade discountGrade = new DiscountGrade();
		//생성자를 통해서 bronze에 할인율을 적용
		int bronze = discountGrade.discountPercent("BRONZE" , price);
		int silver = discountGrade.discountPercent("SILVER", price);	
		int gold = discountGrade.discountPercent("GOLD", price);
		int diamond = discountGrade.discountPercent("DIAMOND", price);
	
		//적용된 할인율 출력 시도
		System.out.println("BRONZE 의 할인율 5% 적용금액 : " + bronze);
		System.out.println("SILVER 의 할인율 10% 적용금액 : " + silver);
		System.out.println("GOLD 의 할인율 15% 적용금액 : " + gold);
		System.out.println("DIAMOND 의 할인율 20% 적용금액 : " + diamond);
	}
}

 

 

20000원에대한 할인율로 적절하게 잘 적용된 금액으로 반영 되었다 . 

하지만, 이렇게 대소문자 구분이 없거나, 오타, 혹은 없는 등급을 정의해도 컴파일 오류가 발생하지않아, 나중에 실행중 오류를 직접 찾아야 하는 문제가 있을 수 있다. 

 

 

 

+ Recent posts