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

C 언어 else-if 사다리(Else-If Ladder) 문 완벽 가이드

else-if 사다리(else-if ladder)는 여러 조건 중 하나를 선택해야 하는 다중 분기(multi-way decision) 상황을 처리하는 가장 일반적인 방법입니다. 위에서부터 조건을 차례대로 검사하다가 처음으로 참이 되는 블록만 실행한 뒤 전체 구문을 빠져나가는 방식으로 동작합니다.

구문(Syntax)

else-if 사다리의 기본 구문은 다음과 같습니다.

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

먼저 condition1을 검사하여 참이면 stmt1을 실행하고 사다리 전체를 종료합니다. 거짓이라면 다음 condition2를 검사하며, 이 과정을 반복합니다. 모든 조건이 거짓일 경우 마지막 else 블록(stmt x)이 실행됩니다.

알고리즘

네 개의 정수 중 최댓값을 찾는 알고리즘을 통해 동작 흐름을 살펴보겠습니다.

START
1단계: int형 변수를 선언한다.
2단계: 실행 시점에 a, b, c, d 값을 입력받는다.
3단계: i. if(a>b && a>c && a>d)
          a가 최댓값임을 출력한다.
       ii. else if(b>c && b>a && b>d)
          b가 최댓값임을 출력한다.
       iii. else if(c>d && c>a && c>b)
          c가 최댓값임을 출력한다.
       iv. else
          d가 최댓값임을 출력한다.
STOP

예제 1: 네 수 중 최댓값 구하기

다음은 else-if 사다리 조건문을 사용해 네 개의 정수 중 가장 큰 값을 출력하는 C 프로그램입니다.

#include<stdio.h>
void main (){
    int a,b,c,d;
    printf("a, b, c, d 값을 입력하세요: ");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    if(a>b && a>c && a>d){
        printf("최댓값은 %d입니다",a);
    }else if(b>c && b>a && b>d){
        printf("최댓값은 %d입니다",b);
    }else if(c>d && c>a && c>b){
        printf("최댓값은 %d입니다",c);
    }else{
        printf("최댓값은 %d입니다",d);
    }
}

실행 결과

실행 1: a, b, c, d 값 입력: 2 4 6 8
최댓값은 8입니다
실행 2: a, b, c, d 값 입력: 23 12 56 23
최댓값은 56입니다

예제 2: 학생 성적 등급 판정하기

이번에는 else-if 사다리를 활용해 입력된 점수에 따라 학생의 등급을 판정하여 출력하는 프로그램입니다.

#include<stdio.h>
int main(){
    int marks;
    printf("학생의 점수를 입력하세요:\n");
    scanf("%d",&marks);
    if(marks <=100 && marks >= 90)
        printf("등급=A");
    else if(marks < 90 && marks>= 80)
        printf("등급=B");
    else if(marks < 80 && marks >= 70)
        printf("등급=C");
    else if(marks < 70 && marks >= 60)
        printf("등급=D");
    else if(marks < 60 && marks > 50)
        printf("등급=E");
    else if(marks == 50)
        printf("등급=F");
    else if(marks < 50 && marks >= 0)
        printf("낙제(Fail)");
    else
        printf("0에서 100 사이의 유효한 점수를 입력하세요");
    return 0;
}

실행 결과

실행 1:
학생의 점수를 입력하세요:78
등급=C
실행 2:
학생의 점수를 입력하세요:98
등급=A

핵심 정리

  • else-if 사다리는 조건을 위에서 아래로 순차적으로 검사하며, 처음 참이 되는 블록만 실행한 후 전체 구문을 벗어납니다.
  • 모든 조건이 거짓일 때 실행할 코드는 마지막 else 블록에 작성합니다.
  • 독립된 여러 개의 if 문과 달리, 조건이 상호 배타적일 때 불필요한 검사를 생략할 수 있어 실행 효율이 좋습니다.
  • 성적 판정처럼 값의 범위에 따라 결과가 달라지는 로직을 구현할 때 특히 유용합니다.