소프트웨어/C 언어

[C언어]08. 논리의 풀이를 위한 조건문에 대하여 배워보자. (if, else if, else)

리습 2013. 6. 5. 06:00


 안녕하십니까. 리습입니다.



 지금까지 변수 함수 를 배워보았으며 이것으로 기본적인 프로그램을 만들어 보기도 하였습니다. 하지만 무언가 부족했을 것입니다. 지금까지 배운 대로라면 컴퓨터 프로그램이란 위에서부터 써준일을 쭉 하는 것 뿐이기 떄문입니다.  컴퓨터한테 ' ~ 일때 ~ 해라' 라는 것을 시키고 싶은데 지금까지 배운것중엔 그런 것을 표현할수 있는 방법이 없었습니다.  C언어에서는 어떤 조건에서 어떤 일을 시키기 위해서 '조건문' 이라는 것을 제공합니다. 또한 이 조건문이라는 것도 우리가 흔히 쓰는 영어와 비슷하기 떄문에 매우 쉽습니다. 

 

 우선 기본적인 형태는 다음과 같습니다.

 

 1. < 어떤 일을 해야하는 조건 > : 말 그대로 조건을 적어주는 것입니다.  필요한대로 만들 수 있습니다. 조건이 옳을 경우 if 안에 있는 해야하는 일을 수행합니다.

                                                                     

ex) if ( input  == 10)  <-- input이 10 과 같다면 ~을 해라.

 

 2. < 해야하는 일 > :  조건이 충족되었을 때 해야하는 일을 적어줍니다. 적어주는 방법은 우리가 지금까지 써온 방법과 같습니다.

 

 참고로 조건을 써야하는 칸에 0을 쓰게된다면 그 조건문은 조건을 충족하지 못하는 것으로 보고 수행하지 않습니다. 반대로 0이 아닌 다른 숫자를 넣을 경우 조건을 충족한 것으로 보고 수행하게 됩니다. 이것을 응용하여 함수를 조건에 넣어놓고 함수가 조건을 판단하여 조건이 틀릴 경우 0을 리턴하고, 맞았을 경우 0 외의 숫자를 리턴하여 복잡한 조건식을 함수 한개로 줄일수도 있습니다. 

 

그럼 한번 예를 들어보겠습니다.. 두개의 숫자를 입력받은 후, 2개의 숫자가 같을경우 같다. 라고 출력해주는 프로그램입니다. if문의 조건은 a 와 b 가 같을때 입니다. 

 

 

 코드

 

#include <stdio.h>

int main( void )

{

     int a, b

     printf("첫번째 숫자를 입력해주세요. : ");

     scanf("%d",& a);

 

     printf("두번째 숫자를 입력해주세요. : ");

     scanf("%d",& b);

 

     if ( a == b)

     {

          printf ( " 두 숫자는 같습니다. \n " );

     }

    return 0;

}

 

    

 

결과 

 

첫번째 숫자를 입력해주세요 : 17

두번째 숫자를 입력해주세요 : 17

두 숫자는 같습니다.

 

   

 if 조건문을 사용할때에는 { } 뒤에  ; 를 붙이지 않아도 됩니다.

 이제 기본적인 조건문은 잘 이해하셨을거라 생각합니다. 그런데 우리가 어떤 조건을 생각할 때에는 이런경우만 있는 것이 아닙니다. "만약 ~하면 ~하고 그렇지 않다면 ~해라." 라는 경우도 있습니다. 이 때를 위해서 else라는 것이 있습니다. 예를 보면서 이해하도록 하겠습니다. 전에 만들어본 프로그램에 같지 않다면 화면에 같지 않다 라고 출력해라 라는 것을 추가해 보도록 하겠습니다.

 

 

 

 코드

 

#include <stdio.h>

int main( void )

{

     int a, b

     printf("첫번째 숫자를 입력해주세요. : ");

     scanf("%d",& a);

 

     printf("두번째 숫자를 입력해주세요. : ");

     scanf("%d",& b);

 

     if ( a == b)

     {

          printf ( " 두 숫자는 같습니다. \n " );

     }

    else

   {

         printf( " 두 숫자는 다릅니다. \n " );

   }

    return 0;

}

 

    

 

결과 

 

첫번째 숫자를 입력해주세요 : 17

두번째 숫자를 입력해주세요 : 16

두 숫자는 다릅니다.

 

   

이렇게 if 조건문 다음에 else 를 써준후 if 조건문을 쓰듯이 같이 쓰면 한개의 조건문이 완성되는 것입니다. 이 때 저 if문과 else 는 한 세트가 되게 됩니다. 이번엔 조건이 yes or no 가 아닌 여러 경우가 있을 때 입니다. 그럴땐 if 를 하나 써준후 그 이후 else if 라는 것으로 조건을 계속해서 써주면 됩니다. 예를 보도록 하겠습니다.

 

 코드

 

#include <stdio.h>

int main( void )

{

     int a

     printf("숫자를 입력해주세요. : ");

     scanf("%d",& a);

 

     if ( a == 1)

     {

          printf ( " 입력하신 숫자는 1입니다. \n " );

     }

    else if ( a == 2)

   {

         printf( " 입력하신 숫자는 2 입니다. \n " );

   }

 

   else

   {

         printf( " 입력하신 숫자는1이나 2가 아닙니다. \n " );

   }

 

    return 0;

}

 

    

 

결과 

 

숫자를 입력해주세요 : 1

입력하신 숫자는 1입니다.

 

   

 

이렇게 else if 를 써준후 똑같이 조건을 적어주게 되면 됩니다.

 

 자 우리는 이제 어떤 조건에 대한 일을 처리할수 있게 되었습니다. 프로그램역시 어떤 조건에 따라 일을 할수 있게 되었으므로 이전에 만들어 보았던 프로그램들 보다 똑똑해 질것입니다. 우리가 조건을 어떤식으로 표현하냐에 따라서 프로그램의 구동방식은 매우 달라지게 됩니다. 그래서 프로그램을 설계할때에는 어쩐 조건에 어떤일을 한다 라는 것을 잘 결정해야 합니다. 

 

참고 . if조건문을 쓴후 { } 를 쓰지 않고 다음줄에 바로 해야할일을 한줄 쓴다면 정상적으로 구동합니다. 하지만 이것은 편의를 위해서 사용되는 것이지 읽기에도 불편하고 실수가 날 위험도 많습니다. 때문에 초보자의 입장에서 아직은 { }을 쓰는 것이 학습에는 더욱더 이로울 것입니다. 실수도 줄이고 말입니다.