본문 바로가기

C Language/Programming Course

3장 조건문(2부 if ~ else if ~ else문) 첫번째 시간


3장 조건문
2부 if ~ else if ~ else문

    이번시간에는 조건문의 첫번째 시간으로 if문에 대해서 알아 보겠습니다.
    먼저 쉽게 설명을 하기 위해 if의 뜻을 알아 보면 만약이라고 한다는 것은 다 알고 계실 것입니다.
    그것을 알고 계시다면,  if문의 사용의 반정도는 알고 계신 거랍니다.
    if문을 사용하는 이유가 우리가 생활을 하면서 한가지 작업을 하는 것이 아니라
    상황에 따라 작업하는 것이 다릅니다. 즉, 컴퓨터에서도 상황에 따라 작업이 다르게
    하기 위해서 이 문법을 사용을 하게 됩니다.

    예로써 만약에 숫자 1번을 누르면 1000원을 그 외의 숫자를 누르면 2000원을
    출력한다고 했을때 이 만약 숫자 1번을 눌렀을때 라는 문장을 코드로
    나타 내기 위해 사용을 한다는 말입니다.

    그럼 이해를 더 돕기 위해 간단한 소스로 보겠습니다

    int count = 0;
   
    printf("숫자를 누르세요 : ");
    scanf("%d", &count);

    if(count == 1)
    {
        printf("1000원\n");       
    }
    else
    {
        printf("2000원\n");       
    }

    이 소스가 있습니다.

    이 소스를 해석 해 보면 숫자를 받아서 그 숫자가 1이라면 1000원을 출력
    1이 아니라면 2000원을 출력 하는 프로그램 입니다.

    즉, if문의 사용을 보면 만약이라는 가정을 문법으로 나타 낸 것입니다.
    그럼 여기에서 else는 무엇일까!? else도 영어 뜻으로 보면
    그 밖의 라는 뜻을 가지고 있습니다.
    이도 역시 c언어에서 똑같은 의미로 누른 숫자가 1이 아닌 그밖의 값은
    이라는 뜻으로 위 소스에서 사용이 되었습니다.

    그리고 참고로 연산자 부분을 공부를 할때 조건문에서 연산자를 많이 사용을
    한다고 했는데 위의 문장을 보면 바로 사용이 된다는 것을 알 수 있죠!?

    그럼 여기에서 if문과 else문은 1이면, 1이 아니면 이라는 두가지 상황에
    맞는 작업을 한 것입니다. 근데 두가지 상황이 아니라 여러가지 상황일때는
    어떻게 나타낼지 생각을 해 봐야겠죠?!

    즉 1일때 작업 2일때 작업 3일때 작업 그밖에 작업 이렇게 4가지 작업이
    필요할때는 if문을 계속 쓸수는 없겠죠?!

    만약에 if문과 else문만 쓰게 된다면,

    if(count == 1)
    {
    }
    else
    {
        if(count == 2)
        {
        }
        else
        {
            if(count == 3)
            {
            }
            else
            {
            }
        }
    }

    이렇게 표현이 될겁니다.
    보기에도 복잡하죠!?
    그래서 이런 복잡함을 없애기 위해서 사용하는 문법이 있습니다.

    위에 소스를 보시면 else 안에 또 if문을 쓰죠!?

    즉, 1이 아니면 2이냐 2가 아니면 3이냐 라고 묻는 문장 인데
    이를 간단하게 else if라는 문법으로 바꿔서 사용 할 수 있습니다. 

    다시 코드로 보면

    if(count == 1)
    {
    }
    else if(count == 2)
    {
    }
    else if(count == 3)
    {
    }
    else
    {
    }

    이런 식으로 사용을 할 수 있습니다. 

    그리고 이렇게 사용을 하는데 있어서
    if문으로 시작을 하고 else 문으로 끝을 내는 것이 정석입니다. 
    만약 if문으로 시작을 해서 else if로 끝을 내더라도 상관은 없지만
    그리고 정석대로 한다면 else 문으로 끝을 내는 것이 좋습니다.

    참고를 하시면 괜찮을 것 같네요.

    다음시간에는 switch문에 대해서 설명을 해 보겠습니다.


if문 예제
===========================================   
    #include <stdio.h>
   
    int main()
    {
        int count = 0;

        printf(1~5사이의 숫자를 눌러 주세요 : ");
        scanf("%d", &count);

        if(count == 1)
        {
            printf("숫자 1를 눌렀습니다.\n")
        }
        else if(count == 2)
        {
            printf("숫자 2를 눌렀습니다.\n")
        }
        else if(count == 3)
        {
            printf("숫자 3을 눌렀습니다.\n")
        }
        else if(count == 4)
        {
            printf("숫자 4를 눌렀습니다.\n")
        }
        else if(count == 5)
        {
            printf("숫자 5를 눌렀습니다.\n")
        }
        else
        {
            printf("1~5사이의 숫자가 아닙니다.\n")
        }
   
        return 0;
    }
===========================================   

문제 : if문을 사용하여 점수를 입력 받아서,
    90점 이상 이면 수
    80점 이상 이면 우
    70점 이상 이면 미
    60점 이상 이면 양
    59점 이하 이면 가

    출력하는 문장을 만드시오~