Skip to Main Content

C언어 기초 가이드 STEP 1: 조건문

코딩 학습 가이드는 소프트웨어학과 송오영교수님이 검수하였습니다.

if 문

'만약에'라는 if의 의미처럼 C에서도 if문은 조건에 따라 다르게 실행되도록 만들 수 있습니다.

형식

if (조건식)
{
    조건식의 결과가 참일 때 실행하고자 하는 명령문;
}

if 문에서 실행할 문장이 한 줄이라면 중괄호( { } )를 생략할 수 있습니다.


x에 9가 들어있으므로 조건식 x<10은 참이 되어 if문 안의 문장을 실행합니다.

 
1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int main(void)
{
    int num = 9;
    if (num < 10)
        printf("10보다 작습니다.\n");
    return 0;
}
 
 

실행결과

10보다 작습니다.
 

조건이 참일 때 실행하는 문장과 거짓일 때 실행하는 문장이 다를 때는 if-else 문을 사용합니다.
if-else문에서는 만약 조건이 참이면 if 아래의 문장을 실행하고, 조건이 참이 아니라면 else 아래의 문장을 실행합니다.

형식

if (조건식)
{
    조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
else
{
    조건식의 결과가 거짓일 때 실행하고자 하는 명령문;
}

if-else도 if와 마찬가지로 실행할 코드가 한 줄이면 중괄호를 생략할 수 있습니다.


'변수 num에 저장된 값이 짝수다.' 라는 명제는 'num를 2로 나눈 나머지가 0과 같다.'라는 수식으로 바꿀 수 있습니다.
num%2==0으로 'num을 2로 나눈 나머지가 0과 같다.'라는 명제를 표현할 수 있습니다.
if (num%2==0)를 통해 'num을 2로 나눈 나머지가 0과 같은가?'라는 조건이 '참'이면 printf("짝수입니다.\n"); 가 실행되고, '거짓'이면 printf("홀수입니다.\n"); 가 실행되는 예제입니다.

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main(void)
{
    int num;
    printf("정수를 입력하세요. : ");
    scanf("%d"&num);
 
    if (num % 2 == 0)
        printf("짝수입니다.\n");
    else
        printf("홀수입니다.\n");
 
    return 0;
}

if-else if-else 문은 셋 이상의 실행문에서 하나를 선택해서 실행하는 구조입니다.
중간에 else if 를 얼마든지 추가할 수 있습니다.

형식

if (조건식1)
{
    조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
else if (조건식2)
{    
    조건식2의 결과가 참일 때 실행하고자 하는 명령문;
}
else
{
    조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 명령문;
}

if-else if-else도 if와 마찬가지로 실행할 코드가 한 줄이면 중괄호를 생략할 수 있습니다.


점수를 입력받은 후 90점 이상은 A, 80점 이상은 B, 70점 이상은 C, 60점 이상은 D, 그 외에는 F학점으로 처리하는 예제입니다.

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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 if (score >= 60)
        printf("D학점\n");
    else
        printf("F학점\n");
 
    return 0;
}

switch 문

switch 문은 if-else if-else 문과 유사합니다. switch 문은 여러 개의 상수 중에서 조건에 해당하는 하나를 골라 실행합니다.

형식

switch (조건 값) 
{
    case 값1:
        조건 값이 값1일 때 실행하고자 하는 명령문;
        break;
    case 값2:
        조건 값이 값2일 때 실행하고자 하는 명령문;
        break;
    ...
    default:
        조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;
        break;
}

break는 해당 블록을 탈출하는 데 사용합니다. 여기서는 switch 문을 빠져나옵니다.


아래 예제에서 보이는 switch(menu)에서의 menu는 switch문으로 전달되는 인자의 정보입니다.
이 메뉴는 정수형 변수어야 하는데, 대표적으로 int형 변수가 위치하게 됩니다. 그리고 이 menu에 저장된 값에 따라서 실행할 영역이 결정됩니다.

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
 
int main(void)
{
    int menu;
    printf("1.치킨  2.피자  3.떡볶이  4.햄버거\n");
    printf("원하는 메뉴를 선택하세요. : ");
    scanf("%d"&menu);
 
    switch (menu)
    {
    case 1:
        printf("치킨을 선택했습니다.\n");
        break;
    case 2:
        printf("피자를 선택했습니다.\n");
        break;
    case 3:
        printf("떡볶이를 선택했습니다.\n");
        break;
    case 4:
        printf("햄버거를 선택했습니다.\n");
        break;
    default:
        printf("잘못 입력하였습니다.\n");
    }
    return 0;
}