Skip to main content
C if statement

C언어 조건문 (if)

C언어 조건문은 특정 조건을 만족할 때 포함된 명령문을 실행하는 구문입니다. 즉 특정 조건에 따라 프로그램의 실행 순서를 결정하고 또는 조건이 만족할 때까지 실행을 반복시킬 수 있습니다.

C언어에는 다음과 같은 조건문이 있습니다.

  • if 문(Statement)
  • switch 문(Statement)
  • ?: 연산자(Operator)
  • goto 문(Statement)

명령문(Statement)은 C언에서 규정하는 문법에 맞게 작성된 코드입니다. 이러한 명령어는 유저에게 입력값을 받거나 화면에 값을 출력하는 등 각자의 기능을 하고 있습니다. 명령문 즉 여러 구문들이 모여 하나의 프로그램이 작성되게 됩니다.

오늘은 위의 조건문 중 if문에 대해 알아보겠습니다.

if 조건문

if문은 요구하는 조건에 따라 아래와 같이 여러 형태로 작성될 수 있습니다.

  1. 단순 if
  2. if…else
  3. 중첩 if…else
  4. else if

단순 if

단순 if의 형태는 다음과 같습니다.

if( 조건문 )
{
   안쪽 명령문;
}
바깥 명령문;

만약 if 조건문이 참(true)이면 안쪽 명령문이 실행되고 거짓(false)이면 실행되지 않습니다. 바깥 명령문은 조건문에 감싸있지 않으므로 언제나 실행됩니다.

예제:

#include <stdio.h> ; 
void main( )
{
    int x, y;
    x = 15;
    y = 13;
    if ( x > y )
    {
	printf("x가 y보다 크다.");
    }
}

OUTPUT
x가 y보다 크다

if…else

if…else의 형태는 다음과 같습니다.

if( 조건문 )
{
    명령문1;
}
else
{
    명령문2;
}

만약 조건문이 참(true)이면 명령문1이 실행되고 아니면 명령문2가 실행됩니다.

예제:

#include <stdio.h>
void main( )
{
    int x, y;
    x = 15;
    y = 18;
    if ( x > y )
    {
	printf("x가 y보다 크다");
    }
    else
    {
 	printf("x가 y보다 작다.");
    }
}

OUTPUT
x가 y보다 작다

중첩 if…else

중첩 if…else의 형태는 다음과 같습니다.

if( 조건문1 )
{
    if( 조건문2 )
    {
	명령문1;
    }
    else 
    {
	명령문2;
    }
}
else
{
    명령문3;
}

만약 조건문1이 거짓(false)이면 명령문3만 실행되고 조건문1이 참(true)이면
다시 조건문2를 검사합니다. 여기서 조건문2가 참(true)이면 명령문1, 거짓(false)이면 명령문2가 실행됩니다.

예제:

#include <stdio.h>;

void main( )
{
    int a, b, c;
    printf("숫자 3개 입력하시오...");
    scanf("%d%d%d",&a, &b, &c);
    if(a > b)
    { 
        if(a > c)
        {
            printf("a가 가장 큰 숫자");
        }
        else 
        {
            printf("c가 가장 큰 숫자");
        }
    }
    else
    {
        if(b > c)
        {
            printf("b가 가장 큰 숫자");
        }
        else
        {
            printf("c가 가장 큰 숫자");
        }
    }
} 

만약 7, 2, 4를 입력하면 각 변수에 a=7, b=2, c=4 입력되고
첫 조건문 (a > b)가 참(true)이므로 다음 조건문인 (a > c)를 비교하고
(a > c) 또한 참(true)이므로 “a가 가장 큰 숫자”가 출력됩니다.

else if

else if의 형태는 다음과 같습니다.

if( 조건문1 )
{
    명령문1;
}
else if( 조건문2 ) 
{
    명령문2;
}
else if( 조건문3 ) 
{
    명령문3;
}
else 
    default 명령문;

위에서 부터 아래로 차례로 조건문을 검사하여 참(true)일 때 해당 명령문을
실행합니다.

예제:

#include <stdio.h>;

void main( )
{
    int a;
    printf("숫자를 입력하시오...");
    scanf("%d", &a);
    if(a%5 == 0 && a%8 == 0)
    {
        printf("5와 8로 나누어 집니다..");
    }  
    else if(a%8 == 0)
    {
        printf("8로 나누어 집니다..");
    }
    else if(a%5 == 0)
    {
        printf("5로 나누어 집니다.");
    }
    else 
    {
        printf("나눌 수 없습니다.");
    }
}

만약 10을 입력하면 a=10이 되고 위에서 부터 조건문을 검사합니다.
10은 5로 나눈 값이 0이므로 (a%5 == 0)이 참이 되므로 “5로 나뉘어 집니다.”가 출력됩니다.

그 외 특징

1. 만약 단순 if 문에서 해당 명령문이 하나일 경우 물결 괄호(Curly Brace)({…}) 를 생략할 수 있습니다.

int a = 5;
if(a > 4)
    printf("success");

위와 같이 if 조건문의 명령문이 한 줄이면 물결 괄호를 생략할 수 있습니다.
만약 하나 이상이면 생략할 수 없습니다.

하지만, 소스코드의 일관성을 위해 물결 괄호를 사용하는 것을 권해 드립니다.

2. 조건문에서는 ‘==’를 사용해야 합니다. 만약 ‘=’를 사용할 경우 항상 참(true)을 리턴합니다.

3. 조건문에서 일반 숫자 0(zero)은 거짓(false)을 그 외 숫자는 항상 참(true)입니다.

if(77)
    printf("hi");

위 코드는 “hi”를 출력합니다.

<< 다음 혼자 공부하는 C언어 이전 >>

One thought to “C언어 조건문 (if)”

  1. 정말 아무것도 모르던 사람인데 찬찬히 읽고나니 배울 내용이 이해가 가고 있습니다!
    선한 재능기부 감사합니다 ! ;D

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다