Pages

Saturday, January 6, 2018

C/C++ 언어 프로그래밍-제어문3

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