C언어 : 7. 분기 제어문

2026. 5. 19. 15:41·C/Study

안녕하세요.

이번에는 분기 제어문을 정리하겠습니다.

 

1. 분기 제어문(분기문)

 1) 의미

  • 분기 제어문(분기문)이란 일정한 조건에 맞춰 내용을 실행하는 제어문입니다.

 2) 종류

  • if 문 : if / else if / else
  • 조건 연산자 : 조건 / ? / :
  • switch 문 : switch / case / default

2. if 문

더보기

1. 단순 if 문

 1) 의미

  • 단순 if 문이란 조건의 참인 경우 내용을 실행하는 제어문입니다.

 2) 사용 구조

if(조건)
{

}

> 조건이 참(true, 0이 아닌 경우)이라면 블록을 실행합니다.

 

 3) 사용예(test11.c)

#include <stdio.h>

int main(void)
{
    int num = 10;

    if(num > 0)
    {
        printf("양수입니다.\n");
    }

    return 0;
}

> 변수 num 이 관계연산에서 true를 반환하고, 그 결과 조건이 참이 되어 블록이 실행됩니다.


2. if / else 문

 1) 의미

  • if else 문이란 조건이 참인 경우 if 의 블록을 실행하고, 그 외의 조건은 else 의 블록을 실행하는 제어문입니다.

 2) 사용 구조

if(조건)
{

}
else
{

}

> 조건이 참인 경우 if 블록을 실행하고, 그 외의 경우 else 블록을 실행합니다.

 

 3) 사용예(test12.c)

#include <stdio.h>

int main(void)
{
    int num;

    printf("숫자 입력 : ");
    scanf("%d", &num);

    if(num % 2 == 0)
    {
        printf("짝수입니다.\n");
    }
    else
    {
        printf("홀수입니다.\n");
    }

    return 0;
}

> num 의 나머지 연산을 통한 결과와 0을 관계연산한 결과 true 인 경우 if 블록을, false 인 경우 else 블록을 실행합니다.

이 경우 3은 else 블록을, 4는 if 블록을 실행하였습니다.


3. if / else if / else 문

 1) 의미

  • 조건이 참인 여러 경우를 정의할 때 사용하는 제어문입니다.
  • if 는 첫 조건을 명시하고, else if 는 그 다음의 조건을 명시합니다. else 는 그 외의 조건들을 처리합니다.

 2) 사용 구조

if(조건)
{

}
else if(조건)
{

}
else
{

}

> else if 는 여러 개가 될 수 있습니다.

 

 3) 사용예(test13.c)

#include <stdio.h>

int main(void)
{
    int score;

    printf("점수 입력 : ");
    scanf("%d", &score);

    if(score >= 90)
    {
        printf("A 학점\n");
    }
    else if(score >= 80)
    {
        printf("B 학점\n");
    }
    else if(score >= 70)
    {
        printf("C 학점\n");
    }
    else
    {
        printf("F 학점\n");
    }

    return 0;
}

> 사용자의 입력에 따른 조건의 관계연산을 수행하고, 일치하는 블록을 실행시킵니다.

만약 하나도 일치되지 않으면 else 문을 실행합니다.

2.1 조건 연산자

더보기

 1) 의미

  • 조건 연산자란 if else문의 형식을 간단하게 표현한 연산자입니다.
  • 조건이 참이면 전자의 값을, 거짓이면 후자의 값을 대입합니다.
  • 유일한 삼항 연산자입니다.

 2) 사용 구조

변수 = (조건) ? a : b;

max = (a > b) ? a : b;

 

 3) 사용예

#include <stdio.h>

int main(void)
{
    int num = 10;

    int result = (num > 0) ? 1 : 0;

    if(result == 1)
    {
        printf("num은 양수입니다.");
    } 
    else
    {
        printf("num은 양수가 아닙니다.");
    }
    

    return 0;
}

> 조건 연산자의 조건이 참이 되어 정수 1을 result 에 대입하고, 이를 통해 if 블록을 실행할 수 있었습니다.


3. switch 문

더보기

1) 의미

  • 다수의 값에서 여러 분기를 할 경우 사용하는 제어문입니다.
  • if / else if / else 문은 판단으로 조건을 사용했지만, switch 문은 판단으로 하나의 값을 사용합니다.
  • 보통 값에는 변수가 주로 들어갑니다.

 2) 사용 구조

switch(Value)
{
    case value1 :
        // action
    case value2 :
        // action
    case value3 :
        // action
    default :
        // action
}

> switch의 Value와 case의 value1, value2, value3 을 비교하여 일치하는 내용이 실행되고, 일치하는 case 가 없다면 default 내용이 실행됩니다.

 

3) 전체실행

  • switch 문은 기본적으로 전체 문장이 모두 실행됩니다.
  • 위의 예제를 봤을 때 case value1 이 일치되어 실행되어도, case value2, case value3 은 차례대로 실행된다는 의미입니다.
  • 물론 default 는 전체 case 가 실패했을 경우에만 실행됩니다.

 3.1) break

  • 하지만 개발자는 case value1 과 case value2 등에 대한 각 case 를 분기시키고 싶을 수 있습니다.
  • 이 때 break 키워드를 사용하면 조건에 맞는 내용만 실행하고 switch 문을 건너뛸 수 있습니다.
switch(Value)
{
    case value1 :
        // action
        break;
    case value2 :
        // action
        break;
    case value3 :
        // action
        break;
    default :
        // action
}

> 예를 들어 switch의 Value와 value1이 틀리다면 case value2로 이동하게 됩니다.

이 때 만약 switch의 Value와 value2 가 일치하다면 내용이 실행되고, break 키워드로 switch 문을 탈출하게 됩니다.

 

 4) 사용예(test15.c)

#include <stdio.h>

int main(void)
{
    int menu;

    printf("메뉴 선택 (1. 햄버거 2. 피자 3. 파스타) : ");
    scanf("%d", &menu);

    switch(menu)
    {
        case 1:
            printf("햄버거 선택\n");
            break;

        case 2:
            printf("피자 선택\n");
            break;

        case 3:
            printf("파스타 선택\n");
            break;

        default:
            printf("잘못된 입력\n");
    }

    return 0;
}

> 각 입력에 대한 case 에 맞게 출력을 하고, break 키워드로 switch 문을 탈출한 후 프로그램을 종료합니다.

1, 2, 3 선택지가 아닌 경우는 전부 default case 로써 "잘못된 입력" 을 출력합니다.

'C > Study' 카테고리의 다른 글

C언어 : 9. 배열과 문자열  (0) 2026.05.26
C언어 : 8. 함수  (0) 2026.05.25
C 언어 : 6. 루프 제어문  (0) 2026.05.19
C언어 : 5. 연산자  (0) 2026.05.19
C언어 : 4. 문자열과 입출력  (0) 2026.05.18
'C/Study' 카테고리의 다른 글
  • C언어 : 9. 배열과 문자열
  • C언어 : 8. 함수
  • C 언어 : 6. 루프 제어문
  • C언어 : 5. 연산자
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
C언어 : 7. 분기 제어문
상단으로

티스토리툴바