Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C언어 의사결정문 완벽 가이드: 순서도와 예제 프로그램으로 배우는 조건문


C언어에서 프로그램의 흐름을 제어하는 대표적인 의사결정(조건 판단) 문장은 다음과 같습니다.

  • 단순 if 문(simple – if statement)
  • if – else 문
  • 중첩 if – else 문(nested if-else)
  • else – if 사다리(ladder)
  • switch 문

1. 단순 if 문(Simple if Statement)

'if' 키워드는 주어진 논리 조건이 참(True)일 때 특정 문장 블록을 실행하기 위해 사용됩니다. 조건이 거짓(False)이면 해당 블록은 건너뛰고 다음 문장으로 넘어갑니다.

문법(Syntax)

if (condition){
    Statement(s)
}

C언어 의사결정문 완벽 가이드: 순서도와 예제 프로그램으로 배우는 조건문

예제

다음 예제는 입력받은 숫자가 50보다 큰지를 검사하는 프로그램입니다.

#include<stdio.h>
main (){
    int a;
    printf ("enter any number:\n");
    scanf ("%d", &a);
    if (a>50)
        printf ("%d is greater than 50", a);
}

실행 결과(Output)

1) enter any number: 60
60 is greater than 50.
2) enter any number: 20
(출력 없음)

2. if – else 문

if – else 문은 조건이 참일 때와 거짓일 때 각각 다른 코드 블록을 실행합니다. 즉, 두 가지 경우 중 반드시 하나가 실행된다는 점이 단순 if 문과의 가장 큰 차이입니다.

문법(Syntax)

if (condition){
    True block statement(s)
}
else{
    False block statement(s)
}

순서도(Flowchart)

C언어 의사결정문 완벽 가이드: 순서도와 예제 프로그램으로 배우는 조건문

예제

다음은 입력받은 수가 짝수인지 홀수인지 판별하는 프로그램입니다.

#include<stdio.h>
main (){
    int n;
    printf ("enter any number:\n");
    scanf ("%d", &n);
    if (n%2 ==0)
        printf ("%d is even number", n);
    else
        printf ("%d is odd number", n);
}

실행 결과(Output)

enter any number: 10
10 is even number

3. 중첩 if – else 문(Nested if-else)

중첩 if – else 문은 하나의 'if'(또는 'else') 블록 안에 또 다른 if 문이 포함된 형태로, 여러 조건을 단계적으로 검사해야 할 때 유용합니다.

문법(Syntax)

if (condition1){
    if (condition2)
        stmt1;
    else
        stmt2;
}
else{
    if (condition3)
        stmt3;
    else
        stmt4;
}

순서도(Flowchart)

C언어 의사결정문 완벽 가이드: 순서도와 예제 프로그램으로 배우는 조건문

예제

다음 예제는 입력받은 세 개의 숫자 중 가장 큰 값을 찾아 출력하는 프로그램입니다.

#include<stdio.h>
main (){
    int a,b,c;
    printf ("enter 3 numbers");
    scanf ("%d%d%d", &a, &b, &c);
    if (a>b){
        if (a>c)
            printf ("%d is largest", a);
        else
            printf ("%d is largest", c);
    } else {
        if (b>c)
            printf ("%d is largest", b);
        else
            printf ("%d is largest", c);
    }
}

실행 결과(Output)

enter 3 numbers = 10 20 30
30 is largest

4. else – if 사다리(Else-if Ladder)

else – if 사다리는 다방향(multi-way) 의사결정 구조입니다. 위에서부터 차례대로 조건을 검사하며, 처음으로 참이 되는 조건의 블록만 실행하고 나머지는 모두 건너뜁니다.

문법(Syntax)

if (condition1)
    stmt1;
else if (condition2)
    stmt2;
   - - - - -
else if (condition n)
    stmt n;
else
    stmt x;

순서도(Flowchart)

C언어 의사결정문 완벽 가이드: 순서도와 예제 프로그램으로 배우는 조건문

예제

다음 예제는 이차방정식 ax² + bx + c = 0의 근을 판별식(d = b² − 4ac)을 이용해 구하는 프로그램입니다.

#include <math.h>
main (){
    int a,b,c,d;
    float r1, r2;
    printf ("enter the values a b c");
    scanf ("%d%d%d", &a, &b, &c);
    d= b*b - 4*a*c ;
    if (d>0){
        r1 = (-b+sqrt(d)) / (2*a);
        r2 = (-b-sqrt(d)) / (2*a);
        printf ("root1 ,root2 =%f%f", r1, r2);
    }
    else if (d== 0){
        r1 = -b / (2*a);
        r2 = -b/ (2*a);
        printf ("root1, root2 = %f%f", r1, r2);
    }
    else
        printf ("roots are imaginary");
}

실행 결과(Output)

enter the values of a b c : 1 4 3
Root 1 = -1
Root 2 = -3

5. switch 문

switch 문은 여러 가지 선택지 중 하나를 고를 때 유용하게 사용됩니다. 표현식(expression)의 값과 일치하는 case 라벨의 문장을 실행하며, 각 case 끝에는 break 문을 두어 블록을 빠져나오게 합니다.

문법(Syntax)

switch (expression){
    case value1 : stmt1;
        break;
    case value2 : stmt2;
        break;
   - - - - - -
    default : stmt-x;
}

순서도(Flowchart)

C언어 의사결정문 완벽 가이드: 순서도와 예제 프로그램으로 배우는 조건문

예제

#include<stdio.h>
main (){
    int n;
    printf ("enter a number");
    scanf ("%d", &n);
    switch (n){
        case 0 : printf ("zero");
            break;
        case 1 : printf ("one");
            break;
        default : printf ("wrong choice");
    }
}

실행 결과(Output)

enter a number
1
one

이처럼 C언어의 의사결정 문장들은 상황에 맞게 적절히 활용하면 프로그램의 흐름을 유연하고 효율적으로 제어할 수 있습니다. 조건의 개수와 복잡도에 따라 단순 if, if-else, 중첩 구조, else-if 사다리, switch 문 중 알맞은 형태를 선택하는 것이 좋은 코드 작성의 첫걸음입니다.