본문 바로가기
Computer Science/C 언어

[C#5] 조건문 (Selection Statements)

by rnasterofmysea 2024. 12. 3.
반응형

5장: 조건문 (Selection Statements)


5.1 조건문의 개요

조건문은 프로그램에서 특정 조건에 따라 명령을 실행하거나 건너뛰는 방식을 제공합니다.
C 언어에서 사용하는 조건문은 다음과 같습니다:

  • if문
  • if-else문
  • 중첩 if-else
  • switch문

5.2 if문

if문은 조건이 **참(1)**일 때 명령을 실행합니다.

기본 형식

if (조건) {
    명령문;
}

예제

#include <stdio.h>

int main(void) {
    int num = 10;

    if (num > 5) {
        printf("num은 5보다 큽니다.\n");
    }

    return 0;
}

출력 결과:

num은 5보다 큽니다.

5.3 if-else문

if 조건이 참이면 if 블록을 실행하고, 거짓이면 else 블록을 실행합니다.

기본 형식

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

예제

#include <stdio.h>

int main(void) {
    int num = 3;

    if (num > 5) {
        printf("num은 5보다 큽니다.\n");
    } else {
        printf("num은 5보다 작거나 같습니다.\n");
    }

    return 0;
}

출력 결과:

num은 5보다 작거나 같습니다.

5.4 중첩 if-else문

if-else 문 안에 또 다른 if-else문을 중첩하여 사용할 수 있습니다.

예제

#include <stdio.h>

int main(void) {
    int score = 85;

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

    return 0;
}

출력 결과:

B 학점

권장 형태 (else if)

중첩된 if-else문을 간결하게 작성하려면 else if를 사용합니다.

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

5.5 switch문

switch문은 변수 값을 여러 **케이스(case)**로 분류해 처리할 때 사용됩니다.

기본 형식

switch (표현식) {
    case 값1:
        명령문1;
        break;
    case 값2:
        명령문2;
        break;
    default:
        명령문3;
}
  • break: 현재 case를 종료하고 switch문을 빠져나감.
  • default: 모든 case가 만족하지 않을 때 실행.

예제

#include <stdio.h>

int main(void) {
    int day = 3;

    switch (day) {
        case 1:
            printf("월요일\n");
            break;
        case 2:
            printf("화요일\n");
            break;
        case 3:
            printf("수요일\n");
            break;
        default:
            printf("유효하지 않은 요일입니다.\n");
    }

    return 0;
}

출력 결과:

수요일

5.6 삼항 연산자 (?:)

삼항 연산자는 간단한 조건문을 하나의 표현식으로 줄여줍니다.

기본 형식

조건 ? 값1 : 값2;
  • 조건이 참이면 값1 반환.
  • 조건이 거짓이면 값2 반환.

예제

#include <stdio.h>

int main(void) {
    int num = 10;
    int result = (num > 5) ? 100 : 0;

    printf("결과: %d\n", result);

    return 0;
}

출력 결과:

결과: 100

5.7 조건문 활용 예제

1. 짝수/홀수 판별

#include <stdio.h>

int main(void) {
    int num;

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

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

    return 0;
}

2. 점수 등급 판정

#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;
}

3. 간단한 계산기 (switch 사용)

#include <stdio.h>

int main(void) {
    int num1, num2;
    char operator;

    printf("연산을 입력하세요 (+, -, *, /): ");
    scanf(" %c", &operator);

    printf("첫 번째 숫자를 입력하세요: ");
    scanf("%d", &num1);

    printf("두 번째 숫자를 입력하세요: ");
    scanf("%d", &num2);

    switch (operator) {
        case '+':
            printf("결과: %d\n", num1 + num2);
            break;
        case '-':
            printf("결과: %d\n", num1 - num2);
            break;
        case '*':
            printf("결과: %d\n", num1 * num2);
            break;
        case '/':
            if (num2 != 0)
                printf("결과: %d\n", num1 / num2);
            else
                printf("오류: 0으로 나눌 수 없습니다.\n");
            break;
        default:
            printf("유효하지 않은 연산자입니다.\n");
    }

    return 0;
}

 

반응형