C언어 초급 - 6장: 조건문 (6.1 if, if-else 문)

2025. 2. 23. 18:55프로그래밍 언어/C

6.1 if, if-else 문

C 언어에서 if 문은 프로그램이 특정 조건을 만족하는지 검사하고, 그 결과에 따라 다른 동작을 수행하도록 제어하는 조건문입니다.
또한 if-else 문을 사용하면 참(true)일 때와 거짓(false)일 때 각각 다른 코드를 실행할 수 있습니다.


1. if 문 – 단일 조건 처리

1.1 if 문 개념

  • if 문은 조건이 참(true)일 때만 코드 블록을 실행합니다.
  • 조건이 거짓(false)이면 아무 동작도 수행하지 않습니다.

1.2 if 문 기본 구조

if (조건) {
    // 조건이 참일 때 실행할 코드
}

1.3 if 문 예제

#include <stdio.h>

int main() {
    int age = 20;

    if (age >= 18) {
        printf("성인입니다.\n");
    }

    printf("프로그램 종료.\n");

    return 0;
}

출력 결과

성인입니다.
프로그램 종료.

📌 설명

  • age >= 18 조건이 참(true → 20 >= 18).
  • "성인입니다." 출력 후 "프로그램 종료." 출력.

2. if-else 문 – 단일 조건의 참/거짓 처리

2.1 if-else 문 개념

  • if 문은 조건이 참(true)일 때 실행되지만,
  • else 문은 조건이 거짓(false)일 때 실행됩니다.

2.2 if-else 문 기본 구조

if (조건) {
    // 조건이 참일 때 실행할 코드
} else {
    // 조건이 거짓일 때 실행할 코드
}

2.3 if-else 문 예제

#include <stdio.h>

int main() {
    int age;

    printf("나이를 입력하세요: ");
    scanf("%d", &age);

    if (age >= 18) {
        printf("성인입니다.\n");
    } else {
        printf("미성년자입니다.\n");
    }

    return 0;
}

실행 예시

나이를 입력하세요: 15
미성년자입니다.
나이를 입력하세요: 20
성인입니다.

📌 설명

  • age >= 18 → 참이면 "성인입니다." 출력.
  • 거짓이면 "미성년자입니다." 출력.

3. 복합 조건 처리 (if-else if-else)

3.1 if-else if-else 문 개념

  • 여러 개의 조건을 검사할 때 if-else if-else 문을 사용합니다.
  • 첫 번째 조건이 거짓이면 다음 else if 조건을 검사합니다.
  • 모든 조건이 거짓이면 else 블록이 실행됩니다.

3.2 if-else if-else 문 기본 구조

if (조건1) {
    // 조건1이 참일 때 실행
} else if (조건2) {
    // 조건2가 참일 때 실행
} else {
    // 모든 조건이 거짓일 때 실행
}

3.3 if-else if-else 문 예제

#include <stdio.h>

int main() {
    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;
}

실행 예시

점수를 입력하세요: 85
등급: B
점수를 입력하세요: 72
등급: C
점수를 입력하세요: 95
등급: A
점수를 입력하세요: 60
등급: F

📌 설명

  • score >= 90이면 "A" 출력.
  • score >= 80이면 "B" 출력.
  • score >= 70이면 "C" 출력.
  • 70 미만이면 "F" 출력.

4. 논리 연산자를 활용한 복합 조건 처리

if 문에서 논리 연산자 (&&, ||) 를 사용하면 복합적인 조건을 검사할 수 있습니다.

4.1 논리 AND (&&) 예제

두 개의 조건이 모두 참이어야 실행됩니다.

#include <stdio.h>

int main() {
    int age;
    int hasID;

    printf("나이를 입력하세요: ");
    scanf("%d", &age);

    printf("신분증이 있습니까? (1: 예, 0: 아니오): ");
    scanf("%d", &hasID);

    if (age >= 18 && hasID == 1) {
        printf("입장 가능합니다.\n");
    } else {
        printf("입장 불가능합니다.\n");
    }

    return 0;
}

실행 예시

나이를 입력하세요: 20
신분증이 있습니까? (1: 예, 0: 아니오): 1
입장 가능합니다.

📌 설명

  • 나이가 18 이상이고 신분증이 있음 → 입장 가능.
  • 둘 중 하나라도 만족하지 않으면 입장 불가능.

4.2 논리 OR (||) 예제

하나라도 참이면 실행됩니다.

#include <stdio.h>

int main() {
    int temperature;

    printf("현재 온도를 입력하세요: ");
    scanf("%d", &temperature);

    if (temperature < 0 || temperature > 35) {
        printf("주의: 날씨가 매우 극단적입니다!\n");
    } else {
        printf("날씨가 적당합니다.\n");
    }

    return 0;
}

실행 예시

현재 온도를 입력하세요: 40
주의: 날씨가 매우 극단적입니다!

📌 설명

  • 온도가 0°C 미만이거나 35°C 초과이면 경고 메시지 출력.

5. if 문을 활용한 짝수/홀수 판별

#include <stdio.h>

int main() {
    int num;

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

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

    return 0;
}

실행 예시

정수를 입력하세요: 10
10는 짝수입니다.
정수를 입력하세요: 7
7는 홀수입니다.

📌 설명

  • num % 2 == 0 → 나머지가 0이면 짝수.
  • 그렇지 않으면 홀수.

6. 정리

문법 설명  예제
if 조건이 참이면 실행 if (x > 0) { }
if-else 조건이 참이면 if 실행, 거짓이면 else 실행 if (x > 0) { } else { }
if-else if-else 여러 개의 조건을 검사 if (x > 10) { } else if (x > 5) { } else { }

📌 조건이 하나일 때 → if 사용
📌 참/거짓에 따라 다른 코드 실행 → if-else 사용
📌 여러 개의 조건 검사 → if-else if-else 사용