7_3 조건문(switch문)

오현석·2022년 3월 1일
0

switch문은 하나의 조건식으로 많은 경우의 수를 처리할 수 있고, 표현도 간결한 것이 장점이다.
switch문의 기본형식은 다음과 같다.

switch (조건식) { // 블록시작
			case1 :
            		// 조건식의 결과가 case 값1과 같을경우 수행되는 코드
                    	break;
            case2:
            		// 조건식의 결과가 case 값2과 같을경우 수행되는 코드
                        break;
            case3 :
            		// 조건식의 결과가 case 값3과 같을경우 수행되는 코드    
                        break;
                  default :
                  		// 조건식의 결과와 일치하는 case값이 없을때 실행되는 코드
          }; // 블록끝

switch문은 조건식을 먼저 계산한뒤 조건식의 결과와 같은 case값의 블록내에 코드를 실행한다.
이때 break;가 있어야 해당값의 코드만 실행한뒤 조건식을 빠져나간다.
만약 조건식의 값이 어떤 case의 값도 일치하지않을 시 default 블록내 코드를 실행한다.

이러한 switch문은 제약조건이 있기 때문에 경우의 수가 많아도 if문을 사용해야할 때가 있다.
switch문의 제약조건은 다음과 같다.

1. switch문의 조건식 결과는 정수 또는 문자열이여야 한다.
2. case문의 값은 정수 상수만 가능하며, 중복되지 않아야한다.

package study;

public class study {

	public static void main(String [] args) {
		
		int a = 5, b =3;
				
		
		switch (a - b) {
			
		case 1:
			System.out.println("결과는 1입니다");
			break;
			
		case 2:
			System.out.println("결과는 2입니다");
			break;
			
		case 3:
			System.out.println("결과는 3입니다");
			break;
			
			default :
				System.out.println("일치하지 않습니다"); // 생략가능
		
		}
				
	}
}

결과는 2입니다


위의 간단한 예시로 a - b의 값은 2이므로 case 2의 블록내 코드가 실행된다.

package study;

public class study {

	public static void main(String [] args) {
		
		switch (user) {
			
			case 3:
				canwriting; // 작성할 수 있는 권한
			case 2: 
				canreading; // 읽을 수 있는 권한
			case 1:
				noting;      // 권한 없음
				break;
		}
				
	}
}

위의 코드는 break문을 사용하지않는 작성법이다. user의 레벨에 맞게 숫자가 들어갈시 레벨이 높을 수록 할 수 있는 권한이 많아지는 예시이다.
예를 들어 유저의 레벨이 3이라면 작성, 읽기가 가능하며, 1이라면 아무것도 할 수 없게 된다.

profile
지망생

0개의 댓글