C/C++언어 코딩 복습-제어문 3 (switch case 문)
switch case 문: 앞 장의 다중 if else 문과 유사한 조건형 제어문으로 참/거짓으로 수행문장의 실행을 결정하는 것이 아니라 특정 값에 해당될 때 실행을 하는 형태입니다. 보다 코드가 명확해 질 수 있고 간결해 질 수 있습니다.
switch case 문의 구조는 다음과 같습니다.
switch('식'){
case n1 : '수행문장 1' ;
break ;
case
n2 : '수행문장 2' ;
break ;
case
n3 : '수행문장 3' ;
break ;
default
: '수행문장 0' ;
}
-
switch 문 다음 괄호 안에 있는 '식' 의
값이 n1 일 때는 '수행문장 1' 을 수행하고 다음 break 문에
의해 switch case 문
밖으로 빠져 나옴니다. 즉 다른 수행문장들은 수행을 안한다는 것입니다. 만약 '식' 의
값이 n2 일 때는 '수행문장 2' 을 수행하고 다음
break 문에 의해
switch case 문 밖으로 빠져 나옴니다.
-
만약 '식' 의
값이 n1,
n2, n3 가 아닐 때는
default 뒤에 있는 '수행문장 0' 을 수행합니다. 만약 case
문에
break 문이 없으면
switch 문을 바로 빠져 나오지 않고
break 문을 만날 때 까지 혹은 switch
문을 빠져 나올 때 까지 다음 문장에 있는 수행문장을 수행합니다.
사용예시 :
예제코드
#include
<iostream>
using
namespace std;
int
main() {
int a, b;
a = 1 ;
b = 2 ;
switch(a){
case 1 : cout<<" a = 1 !
"<<endl ;
break;
case 2 : cout<<" a = 2 !
"<<endl ;
break;
case 3 : cout<<" a = 3 !
"<<endl ;
break;
default : cout<<" Hi
"<<endl ;
}
switch(b){
case 1 : cout<<" b = 1 !
"<<endl ;
break;
case 2 : cout<<" b = 2 !
"<<endl ;
break;
case 3 : cout<<" b = 3 !
"<<endl ;
break;
default : cout<<" Hi
"<<endl ;
}
return 0;
}
실행결과
-
상수형 변수 a, b
에 각각 1 과 2 를 대입합니다. 첫번째 case
문에서 a 의
값이 1 이므로 case
1 에 해당되는 " a = 1 ! " 이 출력되고 break 문을 만나 더이상 출력이 되지 않습니다. b 의 경우 값이 2 이므로 case
2 에 해당되는 " b = 2 !" 이라는 값이 출력됩니다.
-
이번에는
break 문을 제거 하고 실행을 시켜보겠습니다.
예제코드
#include
<iostream>
using
namespace std;
int
main() {
int a, b;
a = 1 ;
b = 2 ;
switch(a){
case 1 : cout<<" a = 1 !
"<<endl ;
case 2 : cout<<" a = 2 !
"<<endl ;
case 3 : cout<<" a = 3 !
"<<endl ;
default : cout<<" Hi
"<<endl ;
}
switch(b){
case 1 : cout<<" b = 1 !
"<<endl ;
case 2 : cout<<" b = 2 !
"<<endl ;
case 3 : cout<<" b = 3 !
"<<endl ;
default : cout<<" Hi
"<<endl ;
}
return 0;
}
실행결과
-
앞 예제에서
break 문만 제거한 후 실행을 하면 위와 같은 결과를 얻게 됩니다. 먼저 a 의 경우 a 의 값이 1 이므로 case 1 에서
" a = 1 ! " 이 출력이 됩니다. 그런데
break 문이 없어서 다음 수행문 (" a = 2 ! ", " a = 3 ! ", "Hi") 들이 계속 수행됩니다. 그리고
switch 문을 다 수행하고 빠져 나오게 됩니다.
- b 의 경우 case
1 의 수행문은 수행되지 않습니다. 왜냐하면 b 에는 2 라는 값이 대입되어 있기 때문입니다. 그 다음 case 문에서 b 의 값이 2 이기 때문에 " b = 2 !" 이라는 값이 출력되고 break 혹은
switch 문이 종료할 때까지 수행문들을 수행 합니다.
No comments:
Post a Comment