prize1209 2021. 6. 9. 19:45

1. switch문

처리해야하는 경우의 수가 많을 때 사용한다.

if는 true 나 false 둘 중 하나밖에 결과값이 없다. 그리고 여러 조건식을 계속 계산해야한다.  

그러나 switch문으로는 하나의 조건식으로 여러 가지 경우를 계산할 수 있다. 다만 switch문은 제약조건이 있어서 어쩔 수 없이 if문을 사용해야되는 경우가 있다. 

 

작동 순서

1. 조건식을 계산한다.

2. 조건식의 결과와 일치하는 case문으로 이동

3. 이후의 문장들을 수행

4. break 문이나 switch문의 끝을 만나면 switch 문 전체를 빠져나간다. 

 

 

조건식의 결과와 일치하는 case문이 하나도 없으면 default문으로 이동한다. default 는 생략 가능하다.

만일 break문을 안쓰면 계속 이후 case로 쭉 내려가 끝까지 모든 문장들을 수행한다. 

 

break문을 고의로 생략하는 경우도 있다.

 

회원제로 운영되는 웹사이트의 경우

switch(level) {
	case 3: 
    	grantDelete(); //삭제권한을 준다
    case 2: 
    	grantWrite(); //쓰기권한을 준다
    case 1:
    	grantRead(); //읽기권한을 준다
}

고객 level에 따라 권한을 switch문으로 설정했다.

3 레벨은 삭제, 쓰기, 읽기 모두 가능/2레벨은 쓰기, 읽기 가능/1레벨은 읽기 가능하게 일부러 break를 주지 않았다. 

 

 

2. switch문의 제약조건

-if문의 조건식과 달리, 조건식의 계산결과가 int범위 이하의 정수만 가능

이 값과 일치하는 case문으로 이동하기 때문에 case문의 값 역시 정수이어야한다. 

-중복되면 안된다.

-case문의 값은 반드시 상수여야한다. 변수, 실수, 문자열은 case문의 값으로 사용 불가

 

 

 

 

->

1. switch문의 조건식 결과는 정수 또는 문자열이어야한다. 

2. case문의 값은 정수 상수만 가능하며, 중복되지 않아야한다.