Pages

Showing posts with label C언어 학습-1(제어문). Show all posts
Showing posts with label C언어 학습-1(제어문). Show all posts

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 문이 종료할 때까지 수행문들을 수행 합니다

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

C/C++ 제어문 2 (if, if else, 다중 if else )

if else, if else if : if 문의 종류로 보다 프로그래밍을 효율적으로 만들어 주는 제어문 입니다. 먼저 if else 문을 살펴보겠습니다.

if else 문은
if ('조건'){ '수행 문장 1' }
else{ '수행 문장 2'}

구조를 갖고 있습니다.

- if 다음 괄호 () 사이에 특정 조건을 작성합니다. 그리고 '조건' 만족하면 괄호 {} 사이에 있는 '수행 문장 1' 수행하고 '조건' 만족하지 않으면 '수행 문장 2' 수행합니다.

사용예시 :

예제코드

#include <iostream>
using namespace std;
int main() {

     int a, b;
          a = 1 ;
          b = 10 ;

     if(a > 1){
             cout<<" a > 1 is true !!! "<<endl ;
          } else {
        cout<<" a > 1 is false !!! "<<endl ;
          }

     if(b > 1){
             cout<<" b > 1 is true !!! "<<endl ;
          } else {
        cout<<" b > 1 is false !!! "<<endl ;
          }
          return 0;
}

실행결과

- 앞의 예제를 조금 수정해 보았습니다. if 대신 if else 문을 사용해 if 문의 조건이 거짓일 경우 수행하는 수행 문장 2 추가하였습니다.

- a 에는 1 대입되어 있기 때문에 첫번째 if 문의 경우 a 1 보다 크지 않기 때문에 결과는 거짓으로 수행문장 2 (" a > 1 is false !!! ") 수행해 출력합니다.

- b 에는 10 대입되어 있어 두번째 if 문의 조건을 만족하므로 수행문장 1 (" b > 1 is true !!! ") 수행해 출력합니다

if else 문의 확장판 ? 으로 다중 if else 문이 있습니다. 여러개의 조건들을 정해 특정 조건이 참일때 특정 문장을 수행하게 하는 제어문 입니다. 구조는 다음과 같습니다.  

if ('조건 1'){ '수행 문장 1' }
else if ('조건 2'){ '수행 문장 2' }
else if ('조건 3'){ '수행 문장 3' }
...
else {'수행 문장 0' }

- 첫번째 if 다음 괄호 () 사이에 있는 '조건 1' 만족하면 괄호 {} 사이에 있는 '수행 문장 1' 수행합니다. 이때 나머지 수행문은 수행하지 않습니다.

- 첫번째 '조건 1' 만족하지 않으면 다음 else if 문으로 넘어가고 다시 조건을 판단합니다. ('조건 2') '조건 2' 참이면 '수행 문장 2' 수행합니다. , 조건 1 거짓이고 조건 2 참이면 '수행 문장 2' 수행하고 나머지 수행문은 수행하지 않습니다.

- 이러한 방법으로 여러개의 else if 문을 추가할 있습니다. 마지막의 else 문은 모든 조건들이 만족하지 않을 수행하는 문으로 '수행 문장 0' 수행합니다.

사용예시 :

예제코드

#include <iostream>
using namespace std;

int main() {

     int a, b;
          a = 1 ;
          b = 10 ;

     if(a > 1){
             cout<<" a > 1 is true !!! "<<endl ;
          } else if(b > 1){
        cout<<" b > 1 is true !!! "<<endl ;
          } else {
             cout<<" Both a > 1 and b > 1 are false !!! "<<endl ;
          }

          return 0;
}

실행결과

- 첫번째 if 문의 조건식은 거짓이므로 " a > 1 is true !!! " 문장의 출력은 수행되지 않고 다음 if else 문으로 넘어갑니다. if else 문의 조건식 b > 1 참이므로 <<" b > 1 is true !!! " 문장을 출력하게 됩니다. 물론 마지막 수행문장은 수행되지 않습니다.

예제코드에서 b 값을 1 바꾸면 'a > 1' 'b > 1' 조건식이 모두 거짓이 되므로 마지막 문장이 출력되는 것을 확인할 있습니다.

실행결과

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

C/C++ 제어문 1 (if, if else, 다중 if else )

보통 프로그램 내에서는 문장 코딩한 내용들이 쓰여진 순서대로 (작성 코드 위에서 아래 쪽으로) 실행이 됩니다. 그러나 상황에 따라서는 조건에 맞을 때만 실행을 하고 싶기도 하고 특정 규칙으로 반복작업을 하고 싶을 있습니다.

이를 위해 제공되는 것이 제어문 (if , for , while ) 입니다. 제어문을 사용하면 코딩이 효율적이고 단순해 있다는 장점이 있습니다. 먼저 특정 조건에서 수행하는 제어문에 대해 정리해 보겠습니다.

if : if 문은 그대로 '만약 이렇다면 .... 이렇게 해라' 라는 제어문으로 특정 조건이 만족하면, (true) 이면 특정 문장을 수행하라는 처리문입니다.

if 문은
if ('조건'){ '수행 문장' } 구조를 갖고 있습니다.

if 다음 괄호 () 사이에 특정 조건을 작성합니다. 그리고 '조건' 만족하면 괄호 {} 사이에 있는 수행문장을 수행하고 '조건' 만족하지 않으면 수행하지 않습니다. '조건' 문은 보통 결과가 , 거짓으로 판단하는 조건식을 사용합니다. 상황에 따라 1, 혹은 0 결과를 주는 식을 사용하기도 하는데 이때는 1 (true)으로 0 거짓 (false) 으로 판단합니다.

사용예시 :

예제코드

#include <iostream>
using namespace std;

int main() {

     int a, b;

          a = 1 ;
          b = 10 ;

     if(a > 1){
             cout<<" a > 1 is true !!! "<<endl ;
          }

     if(b > 1){
             cout<<" b > 1 is true !!! "<<endl ;
          }

          return 0;
}

실행결과


- 정수형 변수 a, b 선언하고 a 에는 1 b 에는 10 대입합니다. 첫번째 if 문의 경우 조건문에는 a > 1 이라는 조건이 있습니다.

- a 에는 1 저장되어있고 a 1 보다 크지 않기 때문에 결과는 거짓으로 다음 수행 문장인 " a > 1 is true !!! " 출력하지 않습니다.

- 반면에 b 에는 10 저장되어있고 b 1 보다 크기 때문에 b > 1 이라는 조건이 참이고 다음 수행문장인 " b > 1 is true !!! " 라는 문장을 출력하는 것을 있습니다.