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

C 언어 중첩 if-else 문 완벽 정리: 개념, 문법, 실전 예제

C 언어에서 중첩 if(nested if)란 하나의 if 문이 다른 if 문 또는 else 문의 내부에 포함된 형태를 말합니다. 즉, 'if'가 또 다른 'if' 또는 'else' 블록 안에 위치하는 구조로, 여러 조건을 단계별로 검사해야 할 때 매우 유용하게 사용됩니다.

중첩 if-else 문법

중첩 if-else 문의 기본적인 문법은 다음과 같습니다.

if (조건1){
    if (조건2)
        문장1;
    else
        문장2;
}
else{
    if (조건3)
        문장3;
    else
        문장4;
}

바깥쪽 조건(조건1)이 참이면 안쪽 첫 번째 if 블록이 평가되고, 거짓이면 else 블록 안의 조건(조건3)이 평가됩니다. 이처럼 조건 검사가 계층적으로 이루어지기 때문에 복잡한 의사 결정 로직도 명확하게 표현할 수 있습니다.

예제 1: 세 개의 수 중 최댓값 구하기

다음은 중첩 if-else 조건문을 사용하여 입력받은 세 개의 정수 중 가장 큰 값을 찾는 C 프로그램입니다.

#include <stdio.h>

int main() {
    int a, b, c;
    printf("a, b, c의 값을 입력하세요: \n");
    scanf("%d %d %d", &a, &b, &c);

    if (a > b) {
        if (a > c) {
            printf("%d이(가) 가장 큰 수입니다\n", a);
        } else {
            printf("%d이(가) 가장 큰 수입니다\n", c);
        }
    } else {
        if (b > c) {
            printf("%d이(가) 가장 큰 수입니다\n", b);
        } else {
            printf("%d이(가) 가장 큰 수입니다\n", c);
        }
    }
    return 0;
}

실행 결과

a, b, c의 값을 입력하세요: 3 5 8
8이(가) 가장 큰 수입니다

위 프로그램은 먼저 a와 b를 비교한 뒤, 그 결과에 따라 안쪽 if 문에서 나머지 값과의 비교를 진행합니다. 비교를 단계적으로 수행함으로써 발생 가능한 모든 경우의 수를 빠짐없이 처리할 수 있습니다.

예제 2: 양수, 음수, 0 판별하기

다음은 입력받은 숫자가 양수인지 음수인지(또는 0인지) 판별하는 C 프로그램입니다.

#include <stdio.h>

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

    if (num > 0) {
        printf("입력한 %d은(는) 양수입니다\n", num);
    } else if (num < 0) {
        printf("입력한 %d은(는) 음수입니다\n", num);
    } else {
        printf("입력한 수는 0입니다\n");
    }
    return 0;
}

실행 결과

실행 1: 숫자를 입력하세요:
23
입력한 23은(는) 양수입니다

실행 2: 숫자를 입력하세요:
-56
입력한 -56은(는) 음수입니다

이 예제에서는 if - else if - else 구조를 사용하여 양수, 음수, 0이라는 세 가지 경우를 모두 처리했습니다. 중첩 if-else를 활용하면 이처럼 서로 배타적인 여러 조건을 깔끔하게 분기 처리할 수 있습니다.

중첩 if-else 작성 시 주의 사항

중첩 if-else 문을 작성할 때는 들여쓰기를 일관되게 유지하는 것이 중요합니다. 블록이 깊어질수록 어떤 else가 어떤 if에 속하는지 혼동하기 쉬우므로, 중괄호({ })를 명확히 사용하면 코드의 가독성과 유지보수성이 크게 향상됩니다.

또한 조건이 지나치게 많아져 중첩 깊이가 3단계 이상 깊어진다면, 논리 연산자(&&, ||)를 활용해 조건을 결합하거나 함수로 분리하는 방식을 고려하는 것이 좋습니다.