본문 바로가기

Java

[Java] enum과 switch문 관련 예제

예제의 조건은 다음과 같다.

1. 조건문 활용해서 1부터 limit만큼의 자연수까지 탐색.

2. 3, 4, 5, 8로 나누었을 때, 나누어 떨어지는 수에 특정한 동물의 이름 부여.

3. 출력된 동물의 이름을 카운트해서 횟수를 나열하기.

 

Idea:

1. enum을 이용해서 동물의 이름을 상수로 사용하자.

2. swtich문과 if문을 이용해서 조건문 구현하자.

3. enum 내에서 또 하나의 int변수를 정의해서 각 동물 이름에 딸려다니는 상수를 만들자. 거기에 카운트하자.

 

Code:

 

public class Animal_name_project {

	public static void main(String[] args) {
		int limit = 24;
		int i = 1;
		int[] arr = {3, 4, 5, 8};
		
		Animal.MONKEY.num_of_calls = 0;
		Animal.TIGER.num_of_calls = 0;
		Animal.BEAR.num_of_calls = 0;
		Animal.RABBIT.num_of_calls = 0;
		
		while(i <= limit) {
		
		int j = 0;
		while(j <= 3) {
			switch(j) {
			case 0:  // 3으로 나누는 경우.
				if((i%arr[j]) == 0){
					System.out.println(i+" "+j+" "+arr[j]+ " "+Animal.MONKEY); 
					Animal.MONKEY.num_of_calls++;				
				}
				break;
				// 3으로 나누어 떨어짐.
			case 1:
				if((i%arr[j]) == 0){
					System.out.println(i+" "+j+" "+arr[j]+ " "+Animal.TIGER); 
					Animal.TIGER.num_of_calls++;
				}// 4으로 나누어 떨어짐.
				break;
			case 2:
				if((i%arr[j]) == 0) {
					System.out.println(i+" "+j+" "+arr[j]+ " "+Animal.BEAR); 
					Animal.BEAR.num_of_calls++;
				}// 5으로 나누어 떨어짐.
				break;
			case 3:
				if((i%arr[j]) == 0) {
					System.out.println(i+" "+j+" "+arr[j]+ " "+Animal.RABBIT); 
					Animal.RABBIT.num_of_calls++;
				}// 8으로 나누어 떨어짐.	
				break;
			}
			j++;
		}		
		i++;
		}
		System.out.println("MONKEY를 부른 횟수:"+Animal.MONKEY.num_of_calls);
		System.out.println("TIGER를 부른 횟수:"+Animal.TIGER.num_of_calls);
		System.out.println("BEAR를 부른 횟수:"+Animal.BEAR.num_of_calls);
		System.out.println("RABBIT을 부른 횟수:"+Animal.RABBIT.num_of_calls);
	}

}

enum Animal {
	MONKEY, TIGER, BEAR, RABBIT;
	public int num_of_calls;
}

limit를 24로 넣었을 때의 실행결과: