C 언어 조건문 구현

CBeginner
지금 연습하기

소개

이 랩에서는 C 프로그래밍에서 조건문을 구현하는 방법을 배우게 됩니다. 먼저 if, else if, 그리고 else 문의 기본 구문을 소개하고, 두 숫자를 비교하는 간단한 if 문을 작성해 볼 것입니다. 또한, 여러 조건을 위한 else if 사용법을 살펴보고, 다양한 입력을 사용하여 프로그램을 컴파일하고 테스트하는 방법을 배우게 됩니다.

이 랩은 C 프로그램에서 의사 결정 기능을 구축하는 데 필수적인 조건 논리의 기본 개념을 다룹니다. 이 랩을 마치면, 다양한 조건에 따라 코드의 흐름을 제어하기 위해 조건문을 사용하는 방법에 대한 확실한 이해를 갖게 될 것입니다.

If 구문 이해 (if, else if, else)

프로그래밍 세계에서 결정을 내리는 것은 매우 중요한 기술이며, 조건문은 이를 달성하는 핵심입니다. 이 단계에서는 if, else if, 그리고 else 구문을 사용하여 C 프로그래밍에서 조건문의 기본 개념을 자세히 살펴보겠습니다. 이러한 강력한 도구를 사용하면 프로그램이 의사 결정 흐름도와 마찬가지로 다양한 상황에 동적으로 대응할 수 있습니다.

If 문이란 무엇인가?

if 문은 본질적으로 코드 내의 논리적 검사 지점입니다. 괄호 () 안의 조건을 평가합니다. 특정 코드 블록을 실행해야 하는지 결정하는 문지기라고 생각하면 됩니다. 조건이 참이면 중괄호 {} 안의 코드 블록이 실행되고, 조건이 거짓이면 전체 블록이 건너뛰어져 프로그램이 다음 일련의 명령으로 이동할 수 있습니다.

기본 If 구문

다음은 if 문의 기본 구문입니다.

if (condition) {
    // code to execute if condition is true
}

이 간단한 구조는 프로그래밍에서 의사 결정의 기초를 형성합니다. 조건은 비교, 논리 연산 또는 부울 검사와 같이 true 또는 false 로 평가되는 모든 표현식일 수 있습니다.

Else If 및 Else 추가하기

프로그램이 더 복잡해짐에 따라 여러 가능한 시나리오를 처리해야 하는 경우가 많습니다. 이때 else ifelse가 등장하여 더 정교한 의사 결정 트리를 만들 수 있습니다.

if (condition1) {
    // code to execute if condition1 is true
} else if (condition2) {
    // code to execute if condition2 is true
} else {
    // code to execute if none of the above conditions are true
}

이 구조를 사용하면 여러 조건을 연결할 수 있으며, else는 이전 조건에서 다루지 않은 모든 시나리오에 대한 포괄적인 역할을 합니다.

예제 프로그램

조건 논리를 시연하기 위해 간단한 프로그램을 만들어 보겠습니다. conditions.c라는 새 파일을 만들고 다음 코드를 추가합니다.

cd ~/project
touch conditions.c
#include <stdio.h>

int main() {
    int score = 75;

    if (score >= 90) {
        printf("Grade: A\n");
    } else if (score >= 80) {
        printf("Grade: B\n");
    } else if (score >= 70) {
        printf("Grade: C\n");
    } else if (score >= 60) {
        printf("Grade: D\n");
    } else {
        printf("Grade: F\n");
    }

    return 0;
}

설명

이 프로그램은 전형적인 성적 시스템 시나리오를 보여줍니다. 무슨 일이 일어나는지 자세히 살펴보겠습니다.

  • int score = 75;는 학생의 숫자 점수를 저장하는 변수를 생성합니다.
  • ifelse if 문은 점수를 다른 성적 임계값과 비교합니다.
  • 조건은 가장 높은 것부터 가장 낮은 것 순서로 평가됩니다.
  • 첫 번째 참 조건은 인쇄될 성적을 결정합니다.
  • 조건이 참이 아닌 경우, else 블록은 기본 성적이 할당되도록 합니다.

프로그램 컴파일 및 실행

프로그램을 컴파일하고 실행하려면 터미널에서 다음 명령을 사용하십시오.

gcc conditions.c -o conditions
./conditions

예시 출력:

Grade: C

score 값을 변경하여 출력이 어떻게 변경되는지 실험해 보십시오.

  • "A"를 얻으려면 score = 95로 설정합니다.
  • "B"를 얻으려면 score = 85로 설정합니다.
  • "F"를 얻으려면 score = 55로 설정합니다.

이 실습 방식을 통해 조건문이 프로그램 흐름을 제어하고 다양한 입력 값을 기반으로 결정을 내리는 방식을 이해하는 데 도움이 될 것입니다.

비교를 위한 간단한 If 문 작성

이 단계에서는 C 에서 if 문을 사용하여 간단한 비교 프로그램을 만드는 방법을 살펴보겠습니다. 두 숫자를 비교하고 관계에 따라 다른 출력을 제공하는 프로그램을 작성할 것입니다.

프로그래밍은 논리와 의사 결정에 관한 것입니다. 현실에서 특정 조건에 따라 선택을 하는 것처럼, 프로그래밍에서는 조건문을 사용하여 코드의 흐름을 안내합니다.

WebIDE 를 열고 ~/project 디렉토리에 number_compare.c라는 새 파일을 만듭니다. 다음은 숫자 비교를 보여주는 프로그램입니다.

cd ~/project
touch number_compare.c
#include <stdio.h>

int main() {
    int a = 10;
    int b = 20;

    if (a < b) {
        printf("%d is less than %d\n", a, b);
    }

    if (a == b) {
        printf("%d is equal to %d\n", a, b);
    }

    if (a > b) {
        printf("%d is greater than %d\n", a, b);
    }

    return 0;
}

조건문을 작성할 때, 값 간의 관계를 평가하기 위해 비교 연산자를 사용합니다. 이러한 연산자는 프로그래밍에서 비교의 언어이며, 논리적 결정을 내릴 수 있도록 합니다.

비교 연산자를 자세히 살펴보겠습니다.

  • <는 "미만"을 의미합니다.
  • ==는 "같음"을 의미합니다.
  • >는 "초과"를 의미합니다.

이러한 연산자는 논리적 판단자처럼 작동하여 두 값을 비교하고 관계를 결정합니다. if 문 내부의 조건이 참이면 코드 블록이 실행됩니다.

프로그램을 컴파일하고 실행합니다.

gcc number_compare.c -o number_compare
./number_compare

예시 출력:

10 is less than 20

비교가 어떻게 작동하는지 이해하는 것은 프로그래밍에서 매우 중요합니다. 값을 변경하고 다양한 조건을 실험함으로써 프로그램이 어떻게 결정을 내리는지에 대한 더 깊은 통찰력을 얻을 수 있습니다.

ab의 값을 수정하여 다른 비교 결과를 확인해 보십시오.

  • a > b일 때를 확인하려면 a = 20b = 10으로 변경합니다.
  • 동일한 비교를 확인하려면 a = b로 설정합니다.
  • 비교가 어떻게 작동하는지 이해하려면 다른 숫자를 실험해 보십시오.

기본 비교에 익숙해지면 더 많은 유연성을 제공하는 더 복잡한 비교 연산자를 발견하게 될 것입니다.

  • <= (작거나 같음)
  • >= (크거나 같음)
  • != (같지 않음)

이러한 연산자는 프로그램에서 더 미묘하고 정교한 의사 결정 논리를 생성하는 능력을 확장합니다. 각 비교는 코드가 어떤 경로를 따를지 결정하는 작은 테스트와 같아서 프로그램을 더 동적이고 반응적으로 만듭니다.

대안 흐름을 위한 Else 절 추가

else 문은 기본 조건과 일치하지 않는 경우를 처리하는 강력한 방법을 제공하며, 본질적으로 프로그램에 대한 대체 또는 기본 동작을 생성합니다. 이 메커니즘은 코드가 다양한 시나리오에 지능적으로 대응할 수 있도록 보장합니다.

WebIDE 에서 age_check.c라는 새 파일을 만듭니다. 다음은 if-else의 사용을 보여주는 프로그램입니다.

cd ~/project
touch age_check.c
#include <stdio.h>

int main() {
    int age = 16;

    if (age >= 18) {
        printf("You are an adult and can vote.\n");
    } else {
        printf("You are a minor and cannot vote yet.\n");
    }

    return 0;
}

코드를 자세히 살펴보겠습니다.

  • if (age >= 18)은 나이가 18 세 이상인지 확인합니다.
  • 조건이 참이면 첫 번째 메시지를 인쇄합니다.
  • else는 조건이 거짓인 모든 경우를 포착합니다.
  • 이 예에서는 18 세 미만의 사람들을 위한 메시지를 인쇄합니다.

조건문을 사용할 때는 이를 프로그램의 의사 결정 지점으로 생각하십시오. if 문은 조건을 확인하고, else 절은 해당 조건이 충족되지 않을 때 대체 경로를 제공합니다.

프로그램을 컴파일하고 실행합니다.

gcc age_check.c -o age_check
./age_check

예시 출력:

You are a minor and cannot vote yet.

age 값을 변경해 보십시오.

  • "성인" 메시지를 보려면 age = 20으로 설정합니다.
  • "미성년자" 메시지를 보려면 age = 16으로 설정합니다.

다양한 값을 실험하면 조건 논리가 실제로 어떻게 작동하는지 이해하는 데 도움이 됩니다.

else if를 사용하여 여러 조건 검사를 수행하는 더 복잡한 조건도 만들 수 있습니다.

#include <stdio.h>

int main() {
    int temperature = 25;

    if (temperature < 0) {
        printf("It's freezing outside!\n");
    } else if (temperature < 10) {
        printf("It's cold today.\n");
    } else if (temperature < 20) {
        printf("The weather is mild.\n");
    } else {
        printf("It's warm outside.\n");
    }

    return 0;
}

이 예제는 else if가 최종 else를 포괄적으로 사용하여 여러 조건 검사를 어떻게 만들 수 있는지 보여줍니다. 각 조건은 순서대로 평가되며, 첫 번째 참 조건의 코드 블록이 실행됩니다. 최종 else는 이전 조건이 충족되지 않을 때 기본 케이스 역할을 합니다.

다중 조건을 위한 Else If 사용

이 단계에서는 else if를 사용하여 더 정교한 시나리오에서 여러 조건을 처리하는 방법을 살펴보겠습니다. 이 접근 방식을 사용하면 단순한 이진 선택을 넘어 프로그램에서 더 미묘한 의사 결정 논리를 만들 수 있습니다.

WebIDE 에서 grade_calculator.c라는 새 파일을 만듭니다. 다음은 else if를 사용하여 여러 조건을 보여주는 프로그램입니다.

cd ~/project
touch grade_calculator.c
#include <stdio.h>

int main() {
    int score = 85;

    if (score >= 90) {
        printf("Excellent! Your grade is A.\n");
    } else if (score >= 80) {
        printf("Great job! Your grade is B.\n");
    } else if (score >= 70) {
        printf("Good work. Your grade is C.\n");
    } else if (score >= 60) {
        printf("You passed. Your grade is D.\n");
    } else {
        printf("Sorry, you failed. Your grade is F.\n");
    }

    return 0;
}

코드를 자세히 살펴보고 else if가 어떻게 작동하는지 이해해 보겠습니다.

  • else if는 확인할 추가 조건을 생성합니다.
  • 조건은 위에서 아래로 순차적으로 평가됩니다.
  • 첫 번째 참 조건의 블록이 실행되고 후속 조건은 건너뜁니다.
  • 최종 else는 이전 조건을 충족하지 않는 모든 값에 대한 포괄적인 역할을 합니다.

이 접근 방식은 올바른 일치를 찾을 때까지 여러 가능성을 확인하면서 실제 생활에서 결정을 내리는 방식과 유사합니다. 이 예에서 성적 계산은 중첩된 조건 논리의 전형적인 사용법을 보여줍니다.

프로그램을 컴파일하고 실행합니다.

gcc grade_calculator.c -o grade_calculator
./grade_calculator

예시 출력:

Great job! Your grade is B.

score 값을 변경하여 다양한 시나리오를 실험할 수 있습니다.

  • "A"를 얻으려면 score = 95로 설정합니다.
  • "C"를 얻으려면 score = 75로 설정합니다.
  • "F"를 얻으려면 score = 55로 설정합니다.

다음은 else if를 더 복잡한 논리적 시나리오에 사용할 수 있는 방법을 보여주는 또 다른 예입니다.

#include <stdio.h>

int main() {
    int temperature = 25;

    if (temperature < 0) {
        printf("Freezing cold!\n");
    } else if (temperature < 10) {
        printf("Very cold\n");
    } else if (temperature < 20) {
        printf("Cool\n");
    } else if (temperature < 30) {
        printf("Warm\n");
    } else {
        printf("Hot!\n");
    }

    return 0;
}

이 두 번째 예제는 else if 문을 사용하여 연속적인 범위를 개별 범주로 나누어 정밀한 범위를 만들 수 있는 방법을 보여줍니다. 신중하게 정의된 조건을 사용하면 다양한 입력 값에 지능적으로 응답하는 정교한 의사 결정 구조를 만들 수 있습니다.

중첩된 If 문

여러 조건을 평가해야 하는 프로그램을 작성할 때, 단일 if 문으로는 의사 결정 프로세스의 전체 복잡성을 포착하기에 충분하지 않다는 것을 자주 알게 될 것입니다. 여기서 중첩된 if 문이 매우 유용해지며, 복잡한 시나리오를 처리할 수 있는 조건 논리 계층을 만들 수 있습니다.

중첩된 If 문이란 무엇인가요?

중첩된 if 문은 본질적으로 다른 if 또는 else 블록 내에 배치된 if 문입니다. 각 후속 조건이 이전 조건이 참인 경우에만 평가되는 일련의 의사 결정 검사 지점이라고 생각하십시오. 이 접근 방식은 프로그램 흐름에 대한 더 세분화되고 정확한 제어를 허용합니다.

예제 프로그램

나이와 학생 여부에 따라 사람의 범주를 결정하기 위해 중첩된 if 문을 사용하는 프로그램을 만들어 보겠습니다. nested_conditions.c라는 새 파일을 만들고 다음 코드를 추가합니다.

cd ~/project
touch nested_conditions.c
#include <stdio.h>

int main() {
    int age;
    char is_student;

    printf("Enter your age: ");
    scanf("%d", &age);

    printf("Are you a student? (y/n): ");
    scanf(" %c", &is_student);

    if (age < 18) {
        if (is_student == 'y') {
            printf("You are a minor and a student.\n");
        } else {
            printf("You are a minor and not a student.\n");
        }
    } else {
        if (is_student == 'y') {
            printf("You are an adult and a student.\n");
        } else {
            printf("You are an adult and not a student.\n");
        }
    }

    return 0;
}

설명

이 프로그램에서는 중첩된 if 문이 더 정교한 의사 결정 트리를 만드는 데 어떻게 도움이 되는지 보여줍니다. 주요 구성 요소를 살펴보겠습니다.

  • int age;char is_student;는 사용자의 나이와 학생 상태를 저장하는 변수를 선언합니다.
  • scanf("%d", &age);는 사용자에게 나이를 입력하라는 메시지를 표시하고 이를 age 변수에 저장합니다.
  • scanf(" %c", &is_student);는 사용자의 학생 상태를 읽습니다. %c 앞의 공백은 입력 버퍼 문제를 방지하는 중요한 세부 정보입니다.
  • 외부 if 문은 먼저 사용자가 18 세 미만인지 확인하여 기본 의사 결정 분기를 만듭니다.
  • 내부 if 문은 각 연령대 내에서 학생 상태를 기반으로 범주화를 더욱 세분화합니다.

프로그램 컴파일 및 실행

프로그램을 컴파일하고 실행하려면 터미널에서 다음 명령을 사용하십시오.

gcc nested_conditions.c -o nested_conditions
./nested_conditions

예시 출력:

Enter your age: 17
Are you a student? (y/n): y
You are a minor and a student.

이 프로그램은 중첩된 if 문의 강력함을 보여줍니다. 다양한 입력을 실험해 보면 프로그램이 출력을 동적으로 조정하는 것을 볼 수 있습니다.

  • 나이 20 과 학생 상태 'y'를 입력하여 "성인 및 학생" 메시지를 확인합니다.
  • 나이 15 와 학생 상태 'n'을 입력하여 "미성년자 및 학생 아님" 메시지를 확인합니다.

입력의 각 조합은 중첩된 조건 구조를 통해 다른 경로를 트리거하여 이 프로그래밍 기술의 유연성과 정밀도를 보여줍니다.

요약

이 랩에서는 if, else if, else 구문을 사용하여 C 프로그래밍에서 조건문을 배우셨습니다. 특정 조건에 따라 프로그램이 결정을 내리고 다른 코드 블록을 실행할 수 있도록 하는 조건문의 기본 구조를 소개하는 것으로 시작했습니다. 그런 다음 두 숫자를 비교하고 관계에 따라 다른 출력을 제공하는 간단한 if 문을 작성했습니다. 마지막으로, 여러 조건을 순차적으로 처리하기 위해 else if를 사용하고 이전 조건을 충족하지 않는 모든 값을 포착하기 위해 else 블록을 사용하는 방법을 살펴보았습니다. 이 랩에서 다룬 주요 개념에는 조건문의 구문 이해, 간단한 비교 작성, C 프로그램에서 더 복잡한 의사 결정 논리를 만들기 위해 else ifelse 사용 등이 있습니다.